import { listPages, wait } from '/home/admin9webs/shein建品/sh_lib.mjs'; import { CDP, SAN as S } from '/tmp/cdp3.mjs'; const t = (await listPages()).find(x=>/91miaoshou/i.test(x.url)); const c = await CDP.connect(t.webSocketDebuggerUrl); await c.send('Runtime.enable'); await wait(1200); const o = await c.evalJS(`(()=>{ const fis=[...document.querySelectorAll('input[type=file]')].map(f=>({accept:f.accept||'(无)', cls:String(f.className).slice(0,40), vis:f.offsetParent!==null})); const hints=[...document.querySelectorAll('*')].filter(e=>e.children.length===0&&/xls|xlsx|csv|格式|模板|大小|MB/.test(e.innerText||'')&&(e.innerText||'').length<70) .map(e=>(e.innerText||'').trim()).slice(0,10); const btns=[...document.querySelectorAll('button')].filter(e=>e.offsetParent!==null).map(e=>(e.innerText||'').trim()).filter(Boolean).slice(0,12); return JSON.stringify({fileInputs:fis, hints:[...new Set(hints)], btns:[...new Set(btns)], href:location.href});})()`); console.log('上传控件:', S(String(o)).slice(0,1200)); process.exit(0);