gpt4 book ai didi

python - Selenium:_wait_until_connectable 无限期暂停

转载 作者:太空狗 更新时间:2023-10-30 02:47:03 24 4
gpt4 key购买 nike

我正在尝试使用 Python 和 Selenium 来编写 Firefox 的脚本,示例在他们的网站上:

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

driver = webdriver.Firefox()
driver.get("http://www.python.org")
assert "Python" in driver.title
elem = driver.find_element_by_name("q")
elem.send_keys("selenium")
elem.send_keys(Keys.RETURN)
assert "Google" in driver.title
driver.close()

当我运行这段代码时,它成功地打开了一个新的 Firefox 窗口,但是没有任何反应。浏览器是响应式的,可以加载其他页面,但 Selenium 只是出于某种原因拒绝与其合作。

当我退出 Python 脚本时,这是输出:

^CTraceback (most recent call last):
File "ha.py", line 5, in <module>
driver = webdriver.Firefox()
File "/usr/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", line 46, in __init__
self.binary, timeout),
File "/usr/lib/python2.7/dist-packages/selenium/webdriver/firefox/extension_connection.py", line 46, in __init__
self.binary.launch_browser(self.profile)
File "/usr/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py", line 44, in launch_browser
self._wait_until_connectable()
File "/usr/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py", line 89, in _wait_until_connectable
time.sleep(1)
KeyboardInterrupt

它似乎在函数_wait_until_connectable 中进入了一个无限循环。

似乎是什么导致了这个问题,我怎样才能让 Selenium 使 Firefox 变得“可连接”?

我浏览了 firefox_binary.py 源代码,注意到它在注释中提到了一个“扩展”。我应该在 Firefox 中安装一些支持交互的扩展吗?

最佳答案

不要使用 Firefox Nightly。

Firefox 对大多数版本进行了一些更改,Selenium 需要在 Firefox 升级后 catch 。

引自 CHANGES :

Selenium 2.32

  • Support for FF20 Native Events

Selenium 2.31

  • Support for FF19 native events

看到了吗? Selenium 总是需要 catch 新的 Firefox(例如这里的本地事件)。假设你的 Selenium 是最新的 2.33.0,那么可能会尝试降级你的 Firefox(Nightly 是 25,所以降级到 21 应该可以,20 肯定可以)。

如果您的 Selenium 不是最新的,请先升级

pip install -U selenium

关于python - Selenium:_wait_until_connectable 无限期暂停,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17513958/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com