使用 puppeteer chrome 测试开发工具,我想设置和使用外部函数
const puppeteer = require('puppeteer');
async function setSelectVal(page, sel, val) {
page.evaluate((data) => {
return document.querySelector(data.sel).value = data.val
}, {sel, val})
}
(async () => {
const browser = await puppeteer.launch({headless: false});
const page = await browser.newPage();
await page.goto('url', {waitUntil: 'load'});
const inputLogin = await page.$('input[name=login]');
await page.focus('input[name=login]');
await page.type('login', {delay: 100});
const inputPassord = await page.$('input[name=password]');
await inputPassord.click();
await page.type('pass', {delay: 100});
const inputValidate = await page.$('input[name=valid]');
await inputValidate.click();
await page.waitForSelector('td.newpageclass');
await setSelectVal(page, 'select[name=targetname]', 'targetvalue')
})();
但它会触发错误:
(节点:16312)UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝 id:1):错误:协议错误(Runtime.evaluate):目标已关闭。(节点:16312)[DEP0018] DeprecationWarning:不推荐使用未处理的承诺拒绝。将来,未处理的 Promise 拒绝将使用非零退出代码终止 Node.js 进程。
你知道我应该怎么做吗?