大白兔联盟

文章搜索
搜索
当前位置:首页 > 前沿技术 > 编程技术 > 文章详情

nodjs某宝登录

大白兔    2023-4-27  338  0评论
const puppeteer = require('puppeteer-core');
const fs = require('fs');

function log_in(zh, pwd) {

    (async function () {
        const browser = await puppeteer.launch({
            executablePath: 'C:/Program Files/Google/Chrome/Application/chrome.exe',  // 设置浏览器路径
            headless: false,  // 是否启用无头
            devtools: false, //  调试启动
            ignoreDefaultArgs: ["--enable-automation"], //去掉webDriver标识

            args: ['--disable-features=site-per-process'], //  抓取 iframe
            defaultViewport: {width: 0, height: 0}, // 页面大小

        });
        const page = await browser.newPage()
        await page.evaluateOnNewDocument('const newProto = navigator.__proto__;delete newProto.webdriver;navigator.__proto__ = newProto;');
        await page.goto('')
        const text = await page.waitForXPath('//*[@id="fm-login-id"]')
        console.log(text)
        await text.type(zh); // 输入数据

        await (await page.waitForXPath('//*[@id="fm-login-password"]')).type(pwd
        );
        await new Promise(function (r) {
            setTimeout(r, 5000)
        });
        const iframeHandle = await page.$('#baxia-dialog-content')
        if (iframeHandle) {
            console.log('出现滑块');

            const frame = await iframeHandle.contentFrame(); // 切换iframe
            const handles = await frame.waitForSelector('#nc_1_n1z');

            const kd = await (await frame.waitForSelector('#nc_1__scale_text > span')).boundingBox();  // 获取坐标

            const handle = await handles.boundingBox();
            console.log(handle);
            console.log(kd);

            await page.mouse.move(
                handle.x + handle.width / 2,
                handle.y + handle.height / 2
            );
            await page.mouse.down();
            await page.mouse.move(handle.x + handle.width / 2 + kd.width - handle.width,
                handle.y + handle.height / 2, {steps: 50});
            await page.mouse.up();
        } else {
            console.log('没有滑块');
        }
        await new Promise(function (r) {
            setTimeout(r, 3000)
        });

        await (await page.waitForXPath('//*[@id="login-form"]/div[4]/button')).click();

        await new Promise(function (r) {
            setTimeout(r, 3000)
        });
        if (await page.$('#login-form > div.fm-btn > button')) {
            const error = await page.$('#login-error > div')
            if (error) {
                const prop = await error.getProperty('innerText');
                const text_ = await prop.jsonValue(); // 获取组键文字
                console.log(text_)
            } else {
                console.log('登录异常')
            }
        } else {
            console.log('登录成功')
            fs.writeFile('cookies.json', JSON.stringify(await page.cookies()), function () {
                console.log('cookie写入本地完成')
            })
        }

        await page.close();
        await browser.close();

    })();
}

log_in('11111', '22222')

免责声明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络收集整理,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!

挤眼 亲亲 咆哮 开心 想想 可怜 糗大了 委屈 哈哈 小声点 右哼哼 左哼哼 疑问 坏笑 赚钱啦 悲伤 耍酷 勾引 厉害 握手 耶 嘻嘻 害羞 鼓掌 馋嘴 抓狂 抱抱 围观 威武 给力
提交评论

清空信息
关闭评论