Puppeteer 在网站控制台(开发工具)中运行 javascript

问题描述 投票:0回答:1

我想使用 Node.js 代码在网站的 devtools 控制台中运行某些内容,有人可以帮助我吗?我尝试过使用 puppeteer Promise&Eval 函数,但我似乎无法执行我正在搜索的操作。

这是我运行 chromium 并打开我想要访问的网站后的代码。

console.log(await page.evaluate(
    function login(token) {
    setInterval(() => {
    document.body.appendChild(document.createElement `iframe`).contentWindow.localStorage.token = `"${token}"`
    }, 50);
    setTimeout(() => {
    location.reload();
    }, 2500);
    }
));

page.waitFor( 2000 ).then(console.log('Next command'))

var account = "";

console.log(await page.evaluate(
    account = `myaccount`
));


page.waitFor( 2000 ).then(console.log('Next command'))

console.log(await page.evaluate(
    login(account)
javascript node.js puppeteer
1个回答
4
投票

您可以使用

addScriptTag
添加功能:

await page.setBypassCSP(true);
await page.goto("https://example.com");
function login(token) {
    setInterval(() => {
        document.body.appendChild(document.createElement `iframe`).contentWindow.localStorage.token = token;
    }, 50);
    setTimeout(() => {
        location.reload();
    }, 2500);
}
await page.addScriptTag({content: `${login}`})

稍后您可以通过将令牌作为

login
的参数传递来使用
evaluate
函数:

myToken = "12345";
await page.evaluate(t => login(t), myToken)
© www.soinside.com 2019 - 2024. All rights reserved.