【发布时间】:2018-04-15 22:18:35
【问题描述】:
我正在使用 Puppeteer 在网站内运行测试。单击按钮后,将出现一个带有报告的新弹出浏览器窗口。在那个新窗口中是我想提取的信息。如何让 puppeteer 将焦点转移到这个新创建的浏览器窗口?
我的 puppeteer 页面上有多个打印按钮,点击它会创建一个弹出窗口,我正在尝试获取这些页面的 pdf。这是我正在使用的代码。
let printButtons = await this.page.$$('#printNowButton');
for (var i = 0; i < printButtons.length; i++) {
printButtons[i].click();
const fileName = ('Document'+ i + '.pdf');
browser.on('targetcreated', async target => {
if ((target.url() !== 'about:blank')) {
try {
const pageList = await browser.pages();
const newPage = await pageList[pageList.length - 1];
await newPage.pdf({
path: fileName,
format: 'A4'
}).then(() => {
newPage.close();
});
} catch (e) {
console.log('Error: ' + e);
}
}
});
}
我正在使用 puppeteer 版本 0.13.0 任何其他获得我想要达到的目标的方式也值得赞赏。
【问题讨论】:
-
如果您找到了解决方案,请进行更新。
-
发布您的代码,以便愿意提供帮助的人更深入地了解该场景。
-
您可能需要分两步完成此操作。单击所有按钮,然后等待,然后在所有选项卡完成加载后循环遍历 pages 数组,例如
let pages = await browser.pages();
标签: javascript node.js puppeteer