import { listPages, wait } from '/home/admin9webs/shein建品/sh_lib.mjs'; import { CDP } from '/tmp/cdp3.mjs'; import { writeFileSync } from 'fs'; const t = (await listPages()).find(x=>/91miaoshou/i.test(x.url)); const c = await CDP.connect(t.webSocketDebuggerUrl); await c.send('Page.enable'); await c.send('Runtime.enable'); if (!String(await c.evalJS('location.href')).includes('91miaoshou.com/?redirect') && !String(await c.evalJS('!!document.querySelector(".captcha-field__img")'))) { await c.send('Page.navigate',{url:'https://erp.91miaoshou.com/'}); await wait(10000); } // 确保登录弹窗/表单可见 await c.evalJS(`(()=>{const b=[...document.querySelectorAll('button,a')].find(e=>/^\\s*登录\\s*$/.test((e.innerText||'').trim())); if(b) b.click(); return 1;})()`); await wait(2500); const src = String(await c.evalJS(`(()=>{const i=document.querySelector('.captcha-field__img'); return i?(i.src||''):'';})()`)); const b64 = src.includes('base64,') ? src.split('base64,')[1] : ''; if(!b64){ console.log('没找到验证码图'); process.exit(1); } writeFileSync('/tmp/ms_cap3.jpg', Buffer.from(b64,'base64')); console.log('验证码已存 /tmp/ms_cap3.jpg'); const f = await c.evalJS(`JSON.stringify({acc:!!document.querySelector('input.login-form__input[placeholder="手机号/子账号/邮箱"]'), pwd:!!document.querySelector('input.login-form__input[type=password]'), btn:!!document.querySelector('.login-form__submit-btn')})`); console.log('表单:', String(f)); process.exit(0);