Lazada:类目标签是「分类」,selectCategory 改为通用匹配;记录其选择类目弹窗结构不同(下一轮 dump)
This commit is contained in:
1 parent
0836879e98
commit
9d50eff469
2 files changed
+15
-1
No files matched your search
@@ -32,3 +32,14 @@
|
||||
- `shein建品/sh_lib.mjs`(`newPage`/`closePage`/`installHook`/`readHook`)
|
||||
- `shein建品/sh_build.mjs`:`selectCategory`、`fillRequiredSelects`、`fillRequiredTextInputs`、`fillNativeSelects`
|
||||
- 骨架直接抄 `joom建品/jmbatch.mjs` 或 `alichoice建品/alcbatch.mjs`
|
||||
|
||||
## 第 8 轮补充
|
||||
|
||||
1. **类目标签叫「分类」不叫「产品分类」** —— `sh_build.selectCategory` 原来只认 `/产品分类/`,
|
||||
在 Lazada 上直接 `no-item`。已改成通用匹配:标签含「分类」且**不含**「店小秘」且该项里有
|
||||
`选择分类`(改动在 `shein建品/sh_build.mjs`,对 SHEIN/Temu/aliChoice 同样生效)。
|
||||
2. 改完之后点击能打开了,但**搜索结果是 `no-path`** —— 说明 Lazada 的 `选择分类` 弹窗
|
||||
**不是** SHEIN/Temu 那个「左树右结果、`.search-result-item`」的结构。
|
||||
下一轮第一步:点开 `选择分类`,dump 弹窗 DOM(搜 `搜索分类名称` 输入框在不在、
|
||||
结果项的 class 是什么),再决定是复用还是另写一个 `selectCategoryLazada`。
|
||||
3. 因为类目一直没选上,`lazada*` store 始终为空 —— store 懒加载的结论仍未验证。
|
||||
@@ -33,7 +33,10 @@ export async function selectShop(c, shopName) {
|
||||
/** 选产品分类(弹窗搜索关键词 → 点第一个结果 → 确定) */
|
||||
export async function selectCategory(c, kw, preferName) {
|
||||
const clicked = await c.evalJS(`(()=>{
|
||||
const it=[...document.querySelectorAll('.ant-form-item')].filter(e=>e.offsetParent!==null).find(e=>/产品分类/.test((e.querySelector('label')||{}).innerText||''));
|
||||
// 类目项标签各平台不一:SHEIN/Temu/aliChoice 叫「产品分类」,Lazada 叫「分类」;排除「店小秘分类」
|
||||
const it=[...document.querySelectorAll('.ant-form-item')].filter(e=>e.offsetParent!==null).find(e=>{
|
||||
const t=(e.querySelector('label')||{}).innerText||'';
|
||||
return /分类/.test(t) && !/店小秘/.test(t) && !!/选择分类/.test(e.innerText||'');});
|
||||
if(!it) return 'no-item';
|
||||
const b=[...it.querySelectorAll('*')].find(e=>(e.innerText||'').trim()==='选择分类'&&e.children.length===0);
|
||||
if(!b) return 'no-btn';
|
||||
|
||||
Reference in new issue
Block a user