node.js - 如何处理 puppeteer 中按钮单击的新页面?

标签 node.js typescript puppeteer

我正在一个项目中使用 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()

关于node.js - 如何处理 puppeteer 中按钮单击的新页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59124950/

相关文章:

node.js - KISSMetrics Node.js 库?

typescript - 使用 TypeScript 在 AngularJS 中实现提供程序

javascript - 使用 puppeteer,我如何等待特定的 xhr 请求完成

javascript - puppeteer 中发布请求的意外结果

node.js - 发送后无法设置 header

node.js - 使用 cron 每 12 小时重新启动 pm2 应用程序

javascript - 插入行时解析错误

angular - ngx-translate .instant 返回键而不是值

typescript - 在类中使用 requestAnimationFrame

javascript - Puppeteer 无法可视化完整的 SVG 图表