在selenium中控制firefox选项卡

2024-09-29 17:13:17 发布

您现在位置:Python中文网/ 问答频道 /正文

根据window_handlesdocumentation

window_handles

Returns the handles of all windows within the current session.

但是,打开新选项卡后,window_handles列表中看不到新句柄:

>>> from selenium import webdriver
>>> from selenium.webdriver.common.keys import Keys
>>>
>>> driver = webdriver.Firefox()
>>> driver.get("http://stackoverflow.com/")
>>> driver.window_handles
[u'{caca92e1-521e-9b4d-9374-00af0ae7d384}']
>>>
>>> # open a new tab
>>> driver.find_element_by_tag_name("body").send_keys(Keys.COMMAND + 't')
>>> driver.window_handles
[u'{caca92e1-521e-9b4d-9374-00af0ae7d384}']

如您所见,window_handles具有相同的值,但我看到在浏览器中打开了2个选项卡。是不是我做错了什么?如果是,我应该如何获得新标签的句柄?在

使用:

  • 硒2.44.0(最新)
  • firefox 35.0(最新)
  • python 2.7.6

请注意,如果我在Chrome中做类似的事情,window_handles将显示2个句柄:

^{pr2}$

Tags: thefromimportdriverseleniumkeyswindow句柄
2条回答

Selenium有一个窗口句柄,而不是标签。您也可以使用类似这样的代码来处理选项卡

ArrayList<String> tabs2 = new ArrayList<String> (driver.getWindowHandles());
driver.switchTo().window(tabs2.get(0));

这将允许您处理选项卡1和

^{pr2}$

会让你在第二天工作制表人这样您就可以在浏览器中处理选项卡。在

只有顶层浏览器窗口有HWND。标签没有自己的hwnd。有关详细说明,请参阅here。在

相关问题 更多 >

    热门问题