【问题标题】:selenium.common.exceptions.WebDriverException: Message: connection refused while launching Firefox browser through Selenium and Pythonselenium.common.exceptions.WebDriverException:消息:通过 Selenium 和 Python 启动 Firefox 浏览器时连接被拒绝
【发布时间】:2018-11-01 08:39:57
【问题描述】:

我正在尝试这段代码:

from selenium import webdriver

browser = webdriver.Firefox()
browser.get('http://seleniumhq.org/')

它会打开 Firefox,但没有获取链接并显示此消息:

Traceback (most recent call last):
  File "new.py", line 3, in <module>
    browser = webdriver.Firefox()
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", line 170, in __init__
    keep_alive=True)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 156, in __init__
    self.start_session(capabilities, browser_profile)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 245, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 314, in execute
    self.error_handler.check_response(response)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: connection refused

配置:

  • 硒最新版本
  • 浏览器最新版本
  • python 2.7.14
  • os:kali linux 2.0

geckodriver 日志:

1527001787163   geckodriver INFO    geckodriver 0.20.1
1527001787169   geckodriver INFO    Listening on 127.0.0.1:51383
1527001788204   mozrunner::runner   INFO    Running command: "/usr/bin/firefox" "-marionette" "-profile" "/tmp/rust_mozprofile.IKjgvyUQaThG"
1527001790297   Marionette  INFO    Listening on port 2828

[

【问题讨论】:

    标签: python-2.7 selenium firefox selenium-webdriver geckodriver


    【解决方案1】:

    你需要杀死所有的firefox进程来释放资源。

    将此行添加到 kill.sh

    kill $(ps aux | awk '/firefox/ {print $2}')
    

    运行

    sh kill.sh
    

    【讨论】:

      【解决方案2】:

      你可以试试这个代码:

      from selenium import webdriver
      driver = webdriver.Firefox(executable_path = r'you web driver full path')
      driver.get("http://seleniumhq.org/")
      

      【讨论】:

      • 本次打开浏览器但没有进入链接
      • 你是如何定义可执行文件路径的?
      【解决方案3】:

      此错误消息...

      selenium.common.exceptions.WebDriverException: Message: connection refused
      

      ...暗示WebDriverException 这是基础 webdriver 异常,因为驱动程序无法启动其内部服务器以与 python 客户端通信。

      虽然您提到了 selenium 最新版本浏览器最新版本,但确切的细节将有助于我们以更简单的方式诊断问题。

      同样,虽然您提到了 消息,但我在 geckodriver 日志 中没有看到任何错误。

      尝试以下步骤:

      • 传递 Key executable_path 以及 Value 引用 GeckoDriver绝对路径 为如下:

        from selenium import webdriver
        
        browser = webdriver.Firefox(executable_path='/path/to/geckodriver')
        browser.get('http://seleniumhq.org/')
        
      • Selenium升级到当前级别Version 3.12.0

      • 清理你的项目工作区通过你的IDE重建你的项目只需要依赖。
      • 使用CCleaner 工具在执行测试套件之前和之后清除所有操作系统琐事。
      • 如果您的基础 Web Client 版本太旧,请通过Revo Uninstaller 卸载它并安装最新的 GA 和发布版本的 Web Client
      • 进行系统重启
      • 执行你的@Test
      • 推测,GeckoDriverFirefox Browser Client 的实例之前处于活动状态,因此请始终在 tearDown(){} 方法中调用 driver.quit() 来关闭和销毁 WebDriverWeb Client 实例优雅。

      您可以在以下位置找到详细讨论:

      【讨论】:

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