【问题标题】:Selenium Python: Expected "handle" to be a string, got [object Undefined] undefinedSelenium Python:预期“句柄”是一个字符串,得到 [object Undefined] undefined
【发布时间】:2020-10-01 17:41:35
【问题描述】:

我使用火狐。我单击一个按钮,但该页面作为新选项卡打开,并且 selenium 使用该按钮将注意力集中在原始页面上。我正在尝试切换并获取新网址。

time.sleep(4)
second_driver.switch_to.window(second_driver.window_handles[1])
print(second_driver.current_url)

我明白了:

selenium.common.exceptions.InvalidArgumentException: Message: Expected "handle" to be a string, got [object Undefined] undefined

我也尝试了以下方法,但没有效果。我仍然得到旧页面的网址。

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

【问题讨论】:

  • 你能在第二行试试这个吗? second_driver.switch_to.window(str(second_driver.window_handles[1]))
  • stackoverflow.com/questions/63949719/… 这是一个 Firefox 错误。我建议将您的可执行路径切换到 webdriver 管理器。
  • second_driver.switch_to.window(str(second_driver.window_handles[1])) 给出同样的错误
  • 我会尝试获取句柄然后传递它...所以 handle = second_driver.window_handles[1] 然后是 second_driver.switch_to.window(handle) 还要注意句柄的顺序在这个不保证跨驱动程序的数组。

标签: python selenium selenium-webdriver


【解决方案1】:

这是一个 Geckodriver 错误。它已在 0.27.0 版本中解决: https://github.com/mozilla/geckodriver/releases

我曾经在0.24.0版本遇到同样的问题,然后我将Geckodriver升级到这个版本,然后问题就停止了。

但是,我建议始终使用最新版本的 Geckodriver。我检查了0.29.0版本,bug也没有了。

【讨论】:

    猜你喜欢
    • 2017-09-20
    • 2017-09-25
    • 2017-09-14
    • 2022-08-13
    • 2023-02-11
    • 1970-01-01
    • 2013-09-08
    • 2018-06-11
    • 2022-11-16
    相关资源
    最近更新 更多