如何在不知道索引的情况下将WebDriver移动到新打开的Chrome标签页?

时间:2015-07-16 14:39:18

标签: python google-chrome selenium selenium-webdriver chrome-web-driver

我在Chrome中使用Selenium Python Bindings进行Web浏览器自动化。作为自动化脚本的一部分,我单击一个链接,网站将在新选项卡中打开该页面。但是,我的python脚本中的WebDriver对象仍然指向第一个选项卡。

我已经尝试了this answer提供的所有选项,但都没有成功。

到目前为止,我能够开展工作的唯一代码是:

driver.switch_to.window(driver.window_handles[1])

我遇到的问题是,我担心我不能保证新标签位于索引1,我也不认为我可以保证新标签位于最后一个索引。我确实尝试使用这样的键:

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

但是使用一些日志记录我发现驱动程序仍然指向第一个选项卡。有没有办法专注于chrome显示的当前选项卡?

1 个答案:

答案 0 :(得分:2)

每当我遇到这样的情况时,我会切换到最后一个窗口句柄,到目前为止它对我有用:

driver.switch_to.window(driver.window_handles[-1])