Files
dianxiaomi-crossborder-play…/妙手建品/ms_cap4.mjs
T

23 lines
1.5 KiB
JavaScript

import { listPages, wait } from '/home/admin9webs/shein建品/sh_lib.mjs';
import { CDP, SAN as S } 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');
await c.send('Page.navigate',{url:'https://erp.91miaoshou.com/'}); await wait(12000);
const chk = async () => String(await c.evalJS(`JSON.stringify({acc:!!document.querySelector('input.login-form__input[placeholder="手机号/子账号/邮箱"]'), cap:!!document.querySelector('.captcha-field__img'), btn:!!document.querySelector('.login-form__submit-btn')})`));
console.log('初始:', await chk());
if (!/true/.test(await chk())) {
console.log('点登录开弹窗…');
await c.evalJS(`(()=>{const b=[...document.querySelectorAll('button,a,span')].find(e=>e.offsetParent!==null&&/^\\s*登录\\s*$/.test((e.innerText||'').trim()));
if(b) for(const ev of ['mousedown','mouseup','click']) b.dispatchEvent(new MouseEvent(ev,{bubbles:true,cancelable:true,view:window})); return 1;})()`);
await wait(3000);
console.log('点后:', await chk());
}
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_cap4.jpg', Buffer.from(b64,'base64'));
console.log('验证码已存 /tmp/ms_cap4.jpg');
process.exit(0);