根据window_handles 文档:
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个标签。我做错了什么吗?如果是,应该如何获取新标签的句柄?
使用:
请注意,如果我要在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']
仅顶级浏览器窗口具有HWND。选项卡没有自己的HWND。有关更多说明,请参见此处。