使用 puppeteer-core 连接到 Chrome 中当前活动的选项卡

ste*_*wpf 5 javascript webautomation node.js puppeteer

我正在使用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?
Run Code Online (Sandbox Code Playgroud)

(我的目标是做一些事情,比如手动登录网站,然后让我们puppeteer接管。所以我真的很想使用puppeteer-core

har*_*ded 5

没有直接的 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;
    }
  } 
}
Run Code Online (Sandbox Code Playgroud)