问题描述:
使用puppeteer库时,使用async/await语法启动浏览器,但在点击页面元素时,点击无效。
解决方法:
npm install puppeteer@latest
waitForTimeout
方法添加延迟,例如:await page.waitForTimeout(2000);
waitForSelector
方法等待元素的出现,例如:await page.waitForSelector('#elementId');
waitForTimeout
方法添加延迟,例如:await page.waitForTimeout(1000);
click
方法点击元素,例如:await page.click('#elementId');
完整示例代码:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
// 添加延迟等待页面加载完成
await page.waitForTimeout(2000);
// 等待元素出现
await page.waitForSelector('#elementId');
// 添加延迟等待元素可见并且可以被点击
await page.waitForTimeout(1000);
// 点击元素
await page.click('#elementId');
await browser.close();
})();
请注意,根据具体的情况,可能需要调整延迟的时间,以确保页面和元素加载完成。同时,还可以使用其他puppeteer提供的方法来等待页面和元素的加载,例如waitForNavigation
和waitForFunction
等。