在 Chrome 扩展中,您可以使用下面的命令来查找窗口中的活动选项卡
chrome.tabs.query({
currentWindow: true,
active: true,
}
我有一个连接到现有浏览器并获取所有页面的以下代码。我无法确定是否有办法让我知道哪个选项卡/页面当前是活动的并获取其 url (page.url()
,但是要使用数组中的哪一个?)
const puppeteer = require('puppeteer');
debuggerUrl = "http://127.0.0.1:9999/json/version"
const request = require('request');
request(debuggerUrl, function (error, response, body) {
data = JSON.parse(body);
webSocketDebuggerUrl = data["webSocketDebuggerUrl"];
console.log("Connecting to ", webSocketDebuggerUrl);
puppeteer.connect({browserWSEndpoint: webSocketDebuggerUrl}).then(async browser => {
var pages = await browser.pages();
console.log(pages);
console.log(await browser.targets())
await browser.disconnect();
})
});
document.hidden
现已弃用。但我们可以使用文档.可见性状态 https://developer.mozilla.org/en-US/docs/Web/API/Document/visibilityState
注意page
即使您更改为不同的选项卡,也将始终引用相同的选项卡。所以你必须改变page
手动转到活动选项卡。
const pages = await browser.pages();
// this will return list of active tab (which is pages object in puppeteer)
const visiblePages = pages.filter(async (p) => {
const state = await p.evaluate(() => document.visibilityState);
return state === 'visible';
});
const activeTab = visiblePages[0]; // since there should be only 1 active tab per window
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)