在pyppeteer中获取新选项卡的URL [英] Getting the URL of a new tab in pyppeteer

查看:37
本文介绍了在pyppeteer中获取新选项卡的URL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在苦苦思索如何:

  1. 检测何时在Chrome中打开新选项卡(例如,通过单击页面上的某些内容)
  2. 获取新打开的选项卡的URL。

我使用以下命令将pyppeteer连接到我当前的Chrome实例:

browser = await pyppeteer.connect(browserURL='http://127.0.0.1:9222')

手动创建选项卡时,获取URL没有问题。

url = 'https://www.google.com'
page = await browser.newPage()
await page.goto(url)
current_url = await page.evaluate('window.location.href', force_expr=True)

我读到有一种方法可以在原始的木偶操纵者中使用‘targetCreated’来实现这一点:

browser.on('targetcreated', function(){
    console.log('New Tab Created');
})

所以我在问我如何才能做这样的事情:

// listen for new tab
newTab = browser.on('targetcreated') // This is where I'm stuck
// get url
current_url = await newTab.evaluate('window.location.href', force_expr=True)

我希望这一切都有意义!

推荐答案

1.检测新选项卡

from pyppeteer import launch

browser = await launch({"headless": False})
page = await browser.newPage()
await page.goto("http://google.com")


len(await browser.pages()) # Should be 2 because default page and created page

page2 = await browser.newPage()
await page2.goto("http://yahoo.com")
len(await browser.pages()) # Should be 3 now
要检测新选项卡,请选中await browser.pages() 您可以访问每个页面:

pages = await browser.pages()

这就把我们带到.

2.获取新打开选项卡的url

for p in pages:
   print (p.url)
这些是为您的特定问题找出解决方案的构建块。检查您有多少页,如果有更改,请使用新页执行某些操作

这篇关于在pyppeteer中获取新选项卡的URL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆