温馨提示:本文翻译自stackoverflow.com,查看原文请点击:screen scraping - Unable to click element with Puppeteer
puppeteer screen-scraping

screen scraping - 无法使用Puppeteer单击元素

发布于 2020-04-12 10:13:54

网址:https//auto.ru/catalog/cars/all/?page_num = 1

JS代码:

const puppeteer = require('puppeteer');

(async () => {
    try {
        const browser = await puppeteer.launch({args: ['--no-sandbox']});
        const page = await browser.newPage();
        await page.goto('https://auto.ru/catalog/cars/all/?page_num=1', {waitUntil: 'networkidle2'});

        await page.click('#confirm-button');

        await page.waitFor(1000);

        await page.screenshot({path: './data/example.png'});

        await browser.close();

    } catch (err) {
        console.error(err);
    }
})();

当我运行此代码时,没有错误,也没有单击,我停留在同一页面上。

在此处输入图片说明 如何使用Puppeteer单击左侧的蓝色按钮(以隐身模式打开URL以查看按钮)?

查看更多

提问者
mixa_ru
被浏览
24
mbit 2020-02-03 05:47

一切正常。您只需要等待导航完成即可拍摄快照。另外,在尝试单击该元素之前,请始终确保该元素出现:

await page.waitForSelector("#confirm-button");
await Promise.all([
    page.click('#confirm-button'), 
    page.waitForNavigation()
]);
await page.screenshot({path: './data/example.png'});