selenium.common.exceptions.WebDriverException:消息:Raspberry Pi debian上的GeckoDriver Firefox和Selenium拒绝连接错误

时间:2019-02-18 05:07:27

标签: python selenium firefox raspberry-pi geckodriver

我正在研究Raspberry Pi,并试图运行基本的Selenium脚本。这是代码

from selenium import webdriver
d = webdriver.Firefox()
d.get("www.google.com")

发生的事情是打开了一个Firefox窗口,但没有响应。大约一分钟后,我收到以下消息:

 File "testy.py", line 3, in <module>
    d = webdriver.Firefox()
  File "/home/pi/.local/lib/python3.5/site-packages/selenium/webdriver/firefox/webdriver.py", line 174, in __init__
    keep_alive=True)
  File "/home/pi/.local/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
    self.start_session(capabilities, browser_profile)
  File "/home/pi/.local/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "/home/pi/.local/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/home/pi/.local/lib/python3.5/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: connection refused

我的geckodriver处于最新状态。我在以前的帖子中已经看到,这可能是由于firefox版本存在问题。但是,我使用的是可以通过apt安装的最新版本(Mozilla Firefox 52.9.0)。非常感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

您需要在URL中指定协议,例如'http'或'https':

d.get("http://www.google.com")

答案 1 :(得分:1)

此错误消息...

 File "testy.py", line 3, in <module>
    d = webdriver.Firefox()
  File "/home/pi/.local/lib/python3.5/site-packages/selenium/webdriver/firefox/webdriver.py", line 174, in __init__
    keep_alive=True)
.
.
selenium.common.exceptions.WebDriverException: Message: connection refused

...表示 GeckoDriver 无法启动/产生新的 WebBrowser ,即 Firefox浏览器会话。

您的主要问题是所使用的二进制版本之间的不兼容性

  • 由于 geckodriver在当前版本中并且是最新版本,我们假设 GeckoDriver 版本为 0.24.0
  • 您的 Firefox 版本是 52.9.0

因此,根据以下supported platform matrix GeckoDriver v0.24.0 Firefox浏览器v52.9.0 之间存在明显的不匹配:

matrix


解决方案

  • Firefox 版本升级到 Firefox v65.0.1 级别。
  • 通过您的 IDE
  • 清理您的项目工作区重建您的项目,并且仅具有必需的依赖项。
  • 如果您的基本 Web客户端版本过旧,请通过Revo Uninstaller进行卸载,并安装最新版本的 Web客户端。 li>
  • 进行系统重启
  • 以非root用户身份执行Test
  • 始终在driver.quit()方法内调用tearDown(){},以优雅地关闭和销毁 WebDriver Web Client 实例。

答案 2 :(得分:0)

如果没有df_edgelist / http,它将无法正常运行

https