- TikTok/Shopee/速卖通/Walmart 各 46-47 条已在待发布 - Ozon 47 条已建、改价 40/47 - SHEIN 配方跑通第一条;Temu 差「预览图」一步 - 核心产出:MYJ.message.error 钩子诊断法(解开了三个平台的保存静默拦截) - 含下一轮提示词 NEXT-ROUND-PROMPT.md
22 lines
1.7 KiB
JavaScript
22 lines
1.7 KiB
JavaScript
import { attach } from '/tmp/cdp3.mjs';
|
|
const wait = ms => new Promise(z => setTimeout(z, ms));
|
|
const c = await attach('/web/sheinProduct/add') || await attach('dianxiaomi.com');
|
|
const reqs=[];
|
|
c.on(m=>{ if(m.method==='Network.requestWillBeSent'){const r=m.params.request;
|
|
if(/shein/i.test(r.url)&&/\.json/.test(r.url)&&r.method==='POST') reqs.push(r.url.replace('https://www.dianxiaomi.com','')); }});
|
|
await c.send('Network.enable').catch(()=>{});
|
|
const btns = await c.evalJS(`(()=>[...document.querySelectorAll('button')].filter(e=>e.offsetParent!==null).map((b,i)=>{
|
|
const r=b.getBoundingClientRect(); return {i, t:(b.innerText||'').replace(/\\s+/g,' ').trim().slice(0,14), y:Math.round(r.y), dis:b.disabled};}).filter(x=>x.t))()`);
|
|
console.log('按钮:', JSON.stringify(btns).slice(0,700));
|
|
// 点“保存”并立刻轮询任何反馈
|
|
await c.evalJS(`(()=>{const x=[...document.querySelectorAll('button')].filter(e=>e.offsetParent!==null).find(e=>/^\\s*保存\\s*$/.test((e.innerText||'').trim()));
|
|
if(x){ for(const ev of ['mousedown','mouseup','click']) x.dispatchEvent(new MouseEvent(ev,{bubbles:true,cancelable:true,view:window})); } return 1;})()`);
|
|
const seen=[];
|
|
for(let i=0;i<18;i++){ await wait(700);
|
|
const m=await c.evalJS(`(()=>{const a=[...document.querySelectorAll('.ant-message-notice,.ant-notification-notice,.ant-modal-confirm,.ant-modal')].filter(e=>e.offsetParent!==null)
|
|
.map(e=>(e.innerText||'').replace(/\\s+/g,' ').trim().slice(0,130)).filter(Boolean); return JSON.stringify(a.slice(0,3));})()`);
|
|
JSON.parse(String(m)).forEach(x=>seen.push(x)); }
|
|
console.log('反馈:', [...new Set(seen)].slice(0,4).join(' || ').slice(0,400));
|
|
console.log('POST:', JSON.stringify([...new Set(reqs)].slice(0,4)));
|
|
process.exit(0);
|