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 pick = 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'nf'; const box=it.querySelector('.sku-info-box')||it; const opts=[...box.querySelectorAll('.sku-option')].filter(e=>e.offsetParent!==null); const hit=opts.find(e=>/Black\\(/.test(e.innerText||''))||opts[0]; if(!hit)return'no-opt'; const lab=hit.querySelector('label'); const inp=hit.querySelector('input[type=checkbox]'); if(lab) for(const ev of ['mousedown','mouseup','click']) lab.dispatchEvent(new MouseEvent(ev,{bubbles:true,cancelable:true,view:window})); if(inp && !inp.checked) inp.click(); return 'clicked:'+(hit.innerText||'').trim()+' checked='+(inp?inp.checked:'?');})()`); console.log('点色:', pick); await wait(7000); const o = await c.evalJS(`(()=>{ const p=document.querySelector('#app').__vue_app__.config.globalProperties.$pinia; const tbls=[...document.querySelectorAll('table')].filter(t=>t.offsetParent!==null).map(t=>({ th:[...t.querySelectorAll('th')].map(e=>(e.innerText||'').replace(/\\s+/g,' ').trim()).slice(0,15), rows:[...t.querySelectorAll('tbody tr')].filter(x=>x.querySelectorAll('input').length).length})); const d=JSON.parse(JSON.stringify(p._s.get('sheinSkuDataStore').$state)); const a=JSON.parse(JSON.stringify(p._s.get('sheinSkuAttrStore').$state)); return JSON.stringify({tbls, n:(d.formState.skuDataList||[]).length, row0:(d.formState.skuDataList||[])[0], chosen:(a.formState.skuAttrs||[]).map(x=>({name:x.name, vals:(x.attributeValues||[]).map(v=>v.attribute_value||v)}))},null,1);})()`); console.log(String(o).slice(0,1800)); process.exit(0);