【问题标题】:{Python, Selenium} How can I detect browser windows that I'm already using and create a new tab inside said browser window?{Python, Selenium} 如何检测我已经在使用的浏览器窗口并在所述浏览器窗口中创建一个新选项卡?
【发布时间】:2020-11-02 21:16:44
【问题描述】:

我目前正在为网站进行自动登录,但我发现每次运行脚本时 selenium 都会打开一个新的浏览器窗口。我想让它在我已经使用的浏览器窗口中打开一个新选项卡。 Selenium 打开一个新的浏览器窗口,如下所示:

但是,我希望它检测到我已经在使用的窗口,并在那里放置一个新选项卡,如下所示:

我们可以用 Selenium for Python 做到这一点,还是我需要另一种语言? 对不起,如果我的问题有点愚蠢。

谢谢!

【问题讨论】:

  • 你可以使用javascript打开一个新标签页:driver.execute_script("window.open('about:blank', '_blank');");然后,您可以将驱动程序切换到该选项卡。但是,听起来您正在为每个脚本创建一个新的网络驱动程序。这将创建一个单独的网络驱动程序/浏览器。

标签: python selenium google-chrome


【解决方案1】:

没有愚蠢的问题。 您需要找到每次登录时 selenium 都打开新浏览器的原因。

这可能是因为您每次运行该方法时都在初始化 webdriver。 或者,也许您使用了一些触发创建新 webdriver 的钩子或标签。

来自该站点的其他用户的代码:

driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 't') driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.TAB)

windows = driver.window_handles

时间.sleep(3) driver.switch_to.window(windows[1])

【讨论】:

    猜你喜欢
    • 2013-07-27
    • 2015-04-02
    • 2017-12-17
    • 1970-01-01
    • 2012-03-14
    • 2014-02-09
    • 1970-01-01
    • 2014-08-29
    相关资源
    最近更新 更多