这是我的第一个问题,所以请亲切。
我已经编写了大约一年的时间,并且一直在玩木偶和无头镀铬。
我正在尝试创建一个小应用程序,对随机单词进行谷歌图像搜索,并选择/单击第一个结果图像。 (没有理由,只是一个想法)
我成功,直到代码尝试选择结果图像并在我的终端中抛出以下错误:
UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝 id:1):错误:协议错误(Runtime.callFunctionOn):找不到 指定id未定义的上下文
这是我的代码:
const pup = require('puppeteer');
const random = require('random-words');
const url = 'http://images.google.com';
(async() => {
const browser = await pup.launch({headless: false});
const page = await browser.newPage();
await page.goto(url);
const searchBar = await page.$('#lst-ib');
await searchBar.click();
await page.keyboard.type(`${random()}`);
const submit = await page.$('#mKlEF');
await submit.click();
await page.keyboard.type(random());
await page.keyboard.press('Enter');
const pic = await page.evaluate(() => {
return document.querySelectorAll('img');
});
pic.click();
})();
请帮助我,谢谢你!
答案 0 :(得分:1)
document.querySelectorAll('img')
不可序列化,因此返回undefined(请参阅此issue作为参考)
请使用以下内容:(取决于您要点击的元素)
await page.$$eval('img', elements => elements[0].click());