【问题标题】:Selenium Firefox Python running in headless mode Timeout on initializing driverSelenium Firefox Python 在无头模式下运行超时初始化驱动程序
【发布时间】:2020-03-15 13:42:31
【问题描述】:
  • Firefox 版本:60.9.0esr(32 位)
  • 硒版本:3.141.0
  • Geckodriver 版本:0.24.0(32 位)

所以目前一切都在非无头模式下工作。但我需要在无 GUI 的 linux 服务器中运行这个 python 脚本(因此需要无头模式)。出于某种原因,我所有无头运行的尝试都会导致 selenium Web 驱动程序在初始化时超时。

        from selenium import webdriver

        geckoDriverFilepath = path + "geckodriver24_32.exe"

        opts = webdriver.FirefoxOptions()
        opts.add_argument("--headless")
        opts.add_argument("--width=2560")
        opts.add_argument("--height=1440")

        #initialize driver (breaks/timeouts here)
        driver = webdriver.Firefox(options=opts,executable_path=geckoDriverFilepath)

以下是Traceback:

文件“c:\Users\xUser\Desktop\BOMWebService\Backend\code\FirefoxStarter.py”,第 51 行,在 StartFirefox 中 driver = webdriver.Firefox(options=opts,executable_path=geckoDriverFilepath)

init 中的文件“C:\Users\xUser\Desktop\BOMWebService\Backend\virEnvBOMBackend\lib\site-packages\selenium\webdriver\firefox\webdriver.py”,第 174 行 keep_alive=True)

init 中的文件“C:\Users\xUser\Desktop\BOMWebService\Backend\virEnvBOMBackend\lib\site-packages\selenium\webdriver\remote\webdriver.py”,第 157 行 self.start_session(capabilities, browser_profile)

文件“C:\Users\xUser\Desktop\BOMWebService\Backend\virEnvBOMBackend\lib\site-packages\selenium\webdriver\remote\webdriver.py”,第 252 行,在 start_session response = self.execute(Command.NEW_SESSION, 参数)

文件“C:\Users\xUser\Desktop\BOMWebService\Backend\virEnvBOMBackend\lib\site-packages\selenium\webdriver\remote\webdriver.py”,第 321 行,在执行中 self.error_handler.check_response(response)

文件“C:\Users\xUser\Desktop\BOMWebService\Backend\virEnvBOMBackend\lib\site-packages\selenium\webdriver\remote\errorhandler.py”,第 242 行,在 check_response raise exception_class(message, screen, stacktrace)

selenium.common.exceptions.WebDriverException:消息:超时

任何指针将不胜感激。谢谢!

【问题讨论】:

  • 那是一个相当老的firefox版本(我不知道geckodriver是对应的驱动程序)。您是否有不想使用当前版本的原因?你说你想在 linux 上运行,但你的堆栈跟踪是用于 Windows 的......

标签: python selenium firefox geckodriver firefox-headless


【解决方案1】:

此错误消息...

selenium.common.exceptions.WebDriverException: Message: timed out

...暗示 GeckoDriver 无法启动/生成新的 WebBrowserFirefox Browser 会话。

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

  • 您的 Selenium Client 版本是 3.141.0,几乎有点旧。
  • 您的 GeckoDriver 版本是 v0.24.0
  • 您的 Firefox 版本是 v60.9.0esr

所以 Selenium Client v3.141.0GeckoDriver v0.24.0Firefox Browser v60.9.0esr 之间存在明显的不匹配 /p>


解决方案

  • Selenium升级到当前级别Version 3.141.59
  • GeckoDriver升级到GeckoDriver v0.26.0级别。
  • GeckoDriver 位于所需位置。
  • GeckoDriver 对非 root 用户具有可执行权限。
  • Firefox 版本升级到 Firefox v70.0 级别。
  • 清理你的项目工作区通过你的IDE重建你的项目只需要依赖。
  • 如果您的基本 Web 客户端 版本太旧,请卸载它并安装最新的 GA 和发布版本的 Web 客户端
  • 进行系统重启
  • 以非 root 用户身份执行 Test
  • 始终在 tearDown(){} 方法中调用 driver.quit() 以优雅地关闭和销毁 WebDriverWeb Client 实例。

在这里你可以找到关于Which Firefox browser versions supported for given Geckodriver version?的详细讨论

【讨论】:

    猜你喜欢
    • 2013-11-29
    • 1970-01-01
    • 1970-01-01
    • 2021-09-08
    • 2020-11-30
    • 1970-01-01
    • 1970-01-01
    • 2014-12-31
    • 1970-01-01
    相关资源
    最近更新 更多