javascript - Puppeteer 找不到按钮,无法识别加载的网站
问题描述
第一次使用 Puppeteer 并尝试简单地单击此按钮
单击拒绝 cookie 按钮后。那是我的代码:
await page.goto('https://myurl.com');
await page.click('a.cc-btn.cc-deny');
// await page.waitForNavigation();
await page.waitForSelector("#detailview_btn_order", {visible: true});
await page.click("#detailview_btn_order");
单击拒绝 cookie 按钮就像一个魅力。但是,Puppeteer 似乎无法识别第二个按钮。如果我不使用waitForSelector
它只是说它找不到它。如果我使用它,即使网站在 5 秒后完成加载,我也会在 30 秒后超时。如果我取消注释waitForNavigation
(不管我使用什么选项)我会在那里超时,即使网站在几秒钟内加载。我究竟做错了什么?谢谢!
解决方案
你可以试试这个:
await page.goto('https://myurl.com');
await Promise.all([
page.click('a.cc-btn.cc-deny'),
page.waitForNavigation(),
]);
const iframeElement = await page.waitForSelector("#my-iframe");
const frame = await iframeElement.contentFrame();
await frame.waitForSelector("#detailview_btn_order", {visible: true});
await frame.click("#detailview_btn_order");
推荐阅读
- python-3.x - 我如何按从活跃到不活跃的顺序显示最活跃的人
- jogl - 从 yaourt 安装 jogl 正在尝试访问 jogamp.org
- spring-boot - 在与 RestController 相同的项目中测试 RestTemplate 还是不同?
- docker - 将项目转换为 TIBCO BusinessWorks™ Container Edition 时出现问题
- python - 一种使用字典对列表中的整数进行排序的方法
- javascript - 如何在javascript中为背景位置创建变量?
- java - JAVA how to simplify iteration
- powershell - 如果从集合中选择选项,如何将参数设置为强制
- json - 使用 Groovy 将 yaml 转换为 json
- python - Pandas 为每列合并具有不同操作的行