【问题标题】:Unable to focus on new tab in firefox when clicking on the link that opens a new tab using selenium and python单击使用 selenium 和 python 打开新选项卡的链接时,无法专注于 Firefox 中的新选项卡
【发布时间】:2018-04-16 11:04:48
【问题描述】:
element=driver.find_element_by_xpath("html/body/footer/div/div[1]/section/div/div/div[2]/div[1]/ul/li[9]/div/div/a")
driver.execute_script("arguments[0].click();", element)
print(driver.title)

提到的 xpath 是一个链接。在执行 driver.execute_script 后的上述代码中,链接在新选项卡中打开,但 driver.title 仍显示旧选项卡的标题,因此无法识别新选项卡中的新元素。有人可以在这里帮助我吗?

使用的硒版本:3.11.0 使用的火狐版本:47.0.2 使用的 geckodriver 版本:0.14

【问题讨论】:

标签: python selenium geckodriver


【解决方案1】:

如果单击下一步按钮后,页面在新选项卡中打开,那么您必须将 WebDriver 的焦点切换到该窗口。

window_before = driver.window_handles[0]
# Click on next button on Page 1.
# Opens a new tab
window_after = driver.window_handles[1]
driver.switch_to_window(window_after)

#performs some operations on Page 2.
print(driver.title)
driver.close()

driver.switch_to.window(window_before )

【讨论】:

  • 尝试了你的建议,但得到了错误 tabs = driver.getWindow_Handles AttributeError: 'WebDriver' object has no attribute 'getWindow_Handles'
  • 不,它没有用。问题是我共享的代码在 Chrome 中运行良好,但在 Firefox 中却不行。在 Chrome 中,它能够将标签切换到新标签,但在 Firefox 中它失败了。
  • elm=driver.find_element_by_xpath("html/body/footer/div/div[1]/section/div/div/div[2]/div[1]/ul/li[9] /div/div/a") driver.execute_script("arguments[0].click();", elm) driver.switch_to_window(driver.window_handles[1]) print(driver.current_url)
  • 我试过上面的代码,driver.current_url 正在返回“about:blank”
  • 因为“html/body/footer/div/div[1]/section/div/div/div[2]/div[1]/ul/li[9]/div/div/ a 这个 Xpath 有一些严重的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-04
  • 2016-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-23
  • 1970-01-01
相关资源
最近更新 更多