一尘不染

控制selenium中的Firefox标签

selenium

根据window_handles 文档

window_handles

返回当前会话中所有窗口的句柄。

但是,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个标签。我做错了什么吗?如果是,应该如何获取新标签的句柄?

使用:

  • selenium2.44.0(最新)
  • Firefox 35.0(最新)
  • python 2.7.6

请注意,如果我要在Chrome中进行类似操作,window_handles则会显示2个句柄:

>>> driver = webdriver.Chrome()
>>> driver.get("http://stackoverflow.com/")
>>> driver.execute_script('window.open("about:blank", "_blank");')
>>> driver.window_handles
[u'CDwindow-9458E5DB-D5ED-496C-BEE7-2FA468F3DF42', u'CDwindow-04C0FBBC-C418-465B-B6AF-F72B288B45C6']

阅读 329

收藏
2020-06-26

共1个答案

一尘不染

仅顶级浏览器窗口具有HWND。选项卡没有自己的HWND。有关更多说明,请参见此处

2020-06-26