【问题标题】:selenium.common.exceptions.WebDriverException: Message: connection refused error with GeckoDriver Firefox and Selenium on Raspberry Pi debianselenium.common.exceptions.WebDriverException:消息:GeckoDriver Firefox 和 Selenium 在 Raspberry Pi debian 上的连接被拒绝错误
【发布时间】:2019-02-18 05:07:26
【问题描述】:

我正在开发 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)。非常感谢任何帮助。

【问题讨论】:

    标签: python selenium firefox raspberry-pi geckodriver


    【解决方案1】:

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

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

    【讨论】:

    • 实际上异常回溯清楚地表明代码执行甚至没有到达d.get(...)的行
    • @Bob 是的,我现在明白了。之前错过了。好吧,现在OP不需要问第二个问题了。
    【解决方案2】:

    此错误消息...

     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 无法启动/生成新的 WebBrowserFirefox Browser 会话。

    您的主要问题是您使用的二进制文件版本之间的不兼容性,如下所示:

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

    因此,根据下面的supported platform matrixGeckoDriver v0.24.0Firefox Browser v52.9.0 之间存在明显的不匹配:


    解决方案

    • Firefox 版本升级到 Firefox v65.0.1 级别。
    • 清理你的项目工作区通过你的IDE重建你的项目只需要依赖。
    • 如果您的基础 Web Client 版本太旧,请通过Revo Uninstaller 卸载它并安装最新的 GA 和发布版本的 Web Client
    • 进行系统重启
    • 以非 root 用户身份执行 Test
    • 始终在 tearDown(){} 方法中调用 driver.quit() 以优雅地关闭和销毁 WebDriverWeb Client 实例。

    【讨论】:

      【解决方案3】:

      没有http/https 它将无法工作

      browser = webdriver.Firefox()
      url = 'http://www.google.com/'
      browser.get(url)
      browser.maximize_window()
      

      【讨论】:

        猜你喜欢
        • 2018-09-27
        • 1970-01-01
        • 2017-01-25
        • 2021-12-26
        • 1970-01-01
        • 2018-11-01
        • 2017-10-03
        • 2017-05-10
        • 1970-01-01
        相关资源
        最近更新 更多