(节点:4067) UnhandledPromiseRejectionWarning:错误:错误:找不到元素匹配选择器"#r1-3 > div > h2 > a“
但是当我在搜索结果页面的检查元素中输入document.querySelector('#r1-3 > div > h2 > a').click()时,它就通过了。所以选择器是存在的。
const puppeteer = require('puppeteer');
const url = "https://duckduckgo.com/"
async function run()
{
const browser = await puppeteer.launch({headless: false});
const page = await browser.newPage();
await page.goto(url);
await page.type('#search_form_input_homepage', 'stackoverflow');
const promise3 = new Promise((resolve, reject) =>
{
page.$eval('#r1-3 > div > h2 > a', el => el.click());
page.waitForNavigation();
});
const [response] = await Promise.all([
page.waitForNavigation(),
page.click('#search_button_homepage'),
page.waitForNavigation(),
promise3
]).catch(e => console.log(e));
}
run();发布于 2022-03-06 07:03:59
在某个地方,我的承诺观念出了问题。让它只使用异步/等待。
const puppeteer = require('puppeteer');
var sleep = require('sleep');
const url = "https://duckduckgo.com/"
async function run()
{
const browser = await puppeteer.launch({headless: false});
const page = await browser.newPage();
await page.setViewport({width: 1366, height: 768})
await page.goto(url);
await page.$eval('#search_form_input_homepage', el => el.value = 'stackoverflow');
await page.click('#search_button_homepage');
await page.waitForNavigation();
sleep.sleep(5);
await page.$eval('#r1-0 > div > h2 > a', el => el.click());
}
run();https://stackoverflow.com/questions/71368088
复制相似问题