- TikTok/Shopee/速卖通/Walmart 各 46-47 条已在待发布 - Ozon 47 条已建、改价 40/47 - SHEIN 配方跑通第一条;Temu 差「预览图」一步 - 核心产出:MYJ.message.error 钩子诊断法(解开了三个平台的保存静默拦截) - 含下一轮提示词 NEXT-ROUND-PROMPT.md
31 lines
2.4 KiB
JavaScript
31 lines
2.4 KiB
JavaScript
import { attach } from '/tmp/cdp3.mjs';
|
|
const wait = ms => new Promise(z => setTimeout(z, ms));
|
|
const c = await attach('/web/temu/add') || await attach('dianxiaomi.com');
|
|
await c.evalJS(`document.body.click()`); await wait(700);
|
|
const pos = JSON.parse(String(await c.evalJS(`(()=>{const it=[...document.querySelectorAll('.ant-form-item')].filter(e=>e.offsetParent!==null)
|
|
.find(x=>{const l=x.querySelector('label'); return l&&/外包装类型/.test(l.innerText||'');});
|
|
if(!it)return'[]'; const s=it.querySelector('.ant-select-selector'); if(!s)return'[]';
|
|
s.scrollIntoView({block:'center'}); const r=s.getBoundingClientRect();
|
|
return JSON.stringify([Math.round(r.x+r.width/2),Math.round(r.y+r.height/2)]);})()`)));
|
|
console.log('坐标:', JSON.stringify(pos));
|
|
for(const t of ['mousePressed','mouseReleased']) await c.send('Input.dispatchMouseEvent',{type:t,x:pos[0],y:pos[1],button:'left',clickCount:1});
|
|
await wait(3000);
|
|
const o = await c.evalJS(`(()=>{const dd=[...document.querySelectorAll('.ant-select-dropdown')].filter(e=>e.offsetParent!==null).pop();
|
|
if(!dd)return'no-dd'; return JSON.stringify([...dd.querySelectorAll('.ant-select-item-option')].map(e=>(e.innerText||'').trim()).slice(0,10));})()`);
|
|
console.log('外包装类型选项:', String(o).slice(0,400));
|
|
const pk = await c.evalJS(`(()=>{const dd=[...document.querySelectorAll('.ant-select-dropdown')].filter(e=>e.offsetParent!==null).pop();
|
|
if(!dd)return'no-dd'; const its=[...dd.querySelectorAll('.ant-select-item-option')]; if(!its.length)return'no-opt';
|
|
const hit=its.find(o=>/袋|Box|盒|Bag/i.test(o.innerText||''))||its[0];
|
|
for(const ev of ['mousedown','mouseup','click']) hit.dispatchEvent(new MouseEvent(ev,{bubbles:true,cancelable:true,view:window}));
|
|
return 'picked:'+(hit.innerText||'').trim();})()`);
|
|
console.log('选择:', pk);
|
|
await wait(2000);
|
|
// 素材图 形状
|
|
const o2 = await c.evalJS(`(()=>{const p=document.querySelector('#app').__vue_app__.config.globalProperties.$pinia;
|
|
const f=p._s.get('temuAddProductStore').$state.formState;
|
|
return JSON.stringify({matType:Array.isArray(f.materialImage)?'array':typeof f.materialImage,
|
|
mat:String(JSON.stringify(f.materialImage)).slice(0,220), mainN:Array.isArray(f.mainImage)?f.mainImage.length:'?',
|
|
pkg:(()=>{const q=p._s.get('temuAddOtherStore').$state; return JSON.stringify(q.packageFormState).slice(0,200);})()});})()`);
|
|
console.log('字段形状:', String(o2).slice(0,600));
|
|
process.exit(0);
|