温馨提示:本文翻译自stackoverflow.com,查看原文请点击:node.js - Puppeteer run javascript in website console (devtools)
javascript node.js puppeteer

node.js - 木偶在网站控制台(devtools)中运行javascript

发布于 2020-04-10 11:45:33

这非常重要,已经过去了3天,我真的需要完成一些工作。
我想使用node.js代码在网站的devtools控制台中运行某些程序,有人可以帮助我吗?我尝试使用puppeteer promise&eval函数,但似乎无法执行我要搜索的操作。

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

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)```

查看更多

提问者
Lmao 123
被浏览
22
mbit 2020-02-03 04:51

您可以添加一个功能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)