问题描述
我正在使用puppeteer-core
并连接到我自己的Chrome安装。效果很好,但是如何在当前活动的选项卡上执行命令?如何获得参考?
const wsChromeEndpointurl = 'ws://127.0.0.1:9222/devtools/browser/12345';
const browser = await puppeteer.connect({
browserWSEndpoint: wsChromeEndpointurl
});
const page = <active tab> // what do I need here?
(我的目标是做一些事情,例如手动登录网站,然后让puppeteer
接管。所以我真的想使用puppeteer-core
)
解决方法
没有直接的API可以解决这个问题,但是您可以遍历pages
数组并评估文档的visibilityState
属性。
async function activePage() {
const allPages = await context.pages();
for(let page of allPages) {
const state = await page.evaluate(() => document.visibilityState);
if(state === 'visible') {
return page;
}
}
}