Python 新选项卡的句柄在哪里?-蟒蛇硒

Python 新选项卡的句柄在哪里?-蟒蛇硒,python,selenium,internet-explorer,web-scraping,Python,Selenium,Internet Explorer,Web Scraping,我正在使用Python的Selenium和IE webdriver来打开一个新选项卡。。。但是,我无法获得新选项卡的句柄。下面是显示问题的示例代码: from selenium import webdriver from selenium.webdriver.common.keys import Keys #open IE driver = webdriver.Ie() # Open new tab driver.find_element_by_tag_name('body').send_k

我正在使用Python的Selenium和IE webdriver来打开一个新选项卡。。。但是,我无法获得新选项卡的句柄。下面是显示问题的示例代码:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

#open IE
driver = webdriver.Ie()

# Open new tab
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 't')

# Print handles
print(driver.window_handles)
上述打印声明的答案是:

['5bd4ca0b-0095-4851-a36d-54f8c602c906']
我希望得到一个包含两项的列表,但我只得到一项


如果我使用Chrome webdriver,上面的代码可以工作。那么,这是IE webdriver中的一个bug吗?

正式来说,你不能。Selenium使用WebDriver规范与浏览器进行通信,但该规范不支持仅用于windows的选项卡

正如您的示例所示,您可以针对特定的浏览器和操作系统破解解决方案。但你的例子没有说明你为什么要这么做。有没有什么特别的原因让你不能只使用一个新窗口

打开并使用新窗口 从selenium.webdriver.support将预期的_条件导入为EC 从selenium.webdriver.support.wait导入WebDriverWait 初始\u窗口=driver.window\u句柄 wait=WebDriverWaitdriver,10 已打开=EC.新窗口已打开初始窗口 driver.execute_scriptwindow.open; 等一下,不走了 初始\u窗口=驱动程序。当前\u窗口\u句柄 新建\u窗口=listsetdriver.window\u句柄-设置初始\u窗口 新建窗口=新建窗口[0] driver.switch\u至.windownew\u窗口 尝试: ... 最后: driver.switch\u至.windowinitial\u窗口 好处:使用 从capybara.dsl导入页面 使用page.windowpage.open_新建_窗口: ...
您是否可以尝试从selenium.webdriver.support导入预期的\u条件作为EC,从selenium.webdriver.support.ui导入WebDriverWait并执行WebDriverWaitdriver,10.untelec.new\u window\u是\u openeddriver.window\u句柄或WebDriverWaitdriver,10.untelec.number\u of\u of\u windows\u到\u be2I获取TimeoutException。我认为新标签只是没有被识别,而是打印语句上的一个断点。看到第二个选项卡打开后,继续运行。。。现在它能工作了吗?@Diego,你能分享你的IEwebdriverserver和IE版本吗?你在IE中试过这段代码吗?如果它适用于您,请共享您的webdriver和IE版本。我可以使用IE 11.0.9600.18861、Selenium 3.8.0和IEDriverServer.exe 3.8.0,在modern.IE的Windows 8虚拟机上运行它。不得不做一些调整,因为窗把手的顺序与我预期的不同。