node.js - 如何处理 pupeteer 中按钮单击的新页面?
问题描述
我在一个项目中使用 puppeteer 来测试一个网页,在页面中我有几个按钮可以在浏览器中打开一个新选项卡,我该如何使用 puppeteer 来处理呢?
const puppeteer = require('puppeteer');
(async() => {
const browser = await puppeteer.launch({ defaultViewport: null });
const page = await browser.newPage();
// go to the URL
await page.goto('https://example.com/', {waitUntil: 'networkidle'});
await page.click('.btnId'); //opens new tab with Page 2
// handle Page 2
// process Page 2
// close Page 2
// go back to Page 1
browser.close();
})();
我该如何处理第 2 页?
解决方案
await page.waitFor(3 * 1000) // wait for new page to open
const pages = await browser.pages() // get all pages
const page2 = pages[pages.length - 1] // get the new page
// process the new page
await page2.close()
推荐阅读
- android - 如何在 Flutter 中缩小 APK 以使其尽可能小?
- android - 将数据更新到 SQLite-android 的问题
- python - 如何使用camelot从pdf中提取表格?
- wso2is - OAuth 中介版本 WSO2 EI 7.0.2 中的错误
- python - 将 pytest 工作目录更改为测试用例目录
- c# - 必须声明标量变量@empname
- c# - 比较从池中拉出的当前对象的大小与从池中拉出的最后一个对象的大小
- .net-core - 连接到已加密的 AWS Elasticache 时出现问题(静态/传输中的加密)。我正在使用 dotnet 核心
- assembly - 在 MIPS 中的 .data 中发出打印常量
- c# - 如何将包含时代的日文 DateTime 字符串解析为 DateTime 对象?