我想使用 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)
您可以使用
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)