Selenium Firefox Python在无头模式下运行初始化驱动程序时超时 Firefox版本:60.9.0esr(32位) Selenium版本:3.141.0 Geckodriver版本:0.24.0(32位)

Selenium Firefox Python在无头模式下运行初始化驱动程序时超时 Firefox版本:60.9.0esr(32位) Selenium版本:3.141.0 Geckodriver版本:0.24.0(32位),python,selenium,firefox,geckodriver,firefox-headless,Python,Selenium,Firefox,Geckodriver,Firefox Headless,所以现在一切都在无头模式下工作。但是我需要在一个没有GUI的linux服务器上运行这个python脚本(因此需要无头模式)。出于某种原因,我所有的无头运行尝试都会导致selenium web驱动程序在初始化时超时 from selenium import webdriver geckoDriverFilepath = path + "geckodriver24_32.exe" opts = webdriver.FirefoxOptions()

所以现在一切都在无头模式下工作。但是我需要在一个没有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)
以下是回溯:

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

文件“C:\Users\xUser\Desktop\BOMWebService\Backend\virEnvBOMBackend\lib\site packages\selenium\webdriver\firefox\webdriver.py”,第174行,位于init 使_保持活动状态=真)

文件“C:\Users\xUser\Desktop\BOMWebService\Backend\virEnvBOMBackend\lib\site packages\selenium\webdriver\remote\webdriver.py”,第157行,在init 启动会话(功能、浏览器配置文件)

文件“C:\Users\xUser\Desktop\BOMWebService\Backend\virEnvBOMBackend\lib\site packages\selenium\webdriver\remote\webdriver.py”,第252行,在启动会话中 响应=self.execute(Command.NEW_会话,参数)

文件“C:\Users\xUser\Desktop\BOMWebService\Backend\virEnvBOMBackend\lib\site packages\selenium\webdriver\remote\webdriver.py”,执行中第321行 self.error\u handler.check\u响应(响应)

文件“C:\Users\xUser\Desktop\BOMWebService\Backend\virEnvBOMBackend\lib\site packages\selenium\webdriver\remote\errorhandler.py”,第242行,在check\u响应中 引发异常类(消息、屏幕、堆栈跟踪)

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

任何指点都将不胜感激。谢谢

此错误消息

selenium.common.exceptions.WebDriverException: Message: timed out
…意味着GeckoDriver无法启动/生成新的WebBrowser,即Firefox浏览器会话

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

  • 您的Selenium客户端版本是3.141.0,几乎有点旧
  • 您的GeckoDriver版本是v0.24.0
  • 您的Firefox版本是v60.9.0esr
因此,Selenium客户端v3.141.0、GeckoDriver v0.24.0和Firefox浏览器v60.9.0esr之间存在明显的不匹配


解决方案
  • 将硒升级到当前水平
  • 将GeckoDriver升级至标高
  • 壁虎河位于所需位置
  • GeckoDriver对非root用户具有可执行权限
  • 将Firefox版本升级到Firefox v70.0级别
  • 通过IDE清理项目工作区,并仅使用所需的依赖项重建项目
  • 如果您的基本Web客户端版本太旧,请卸载它并安装最新的GA和Web客户端发布版本
  • 重新启动系统
  • 以非root用户身份执行
    测试
  • 始终在
    tearDown(){}
    方法中调用
    driver.quit()
    ,以优雅地关闭和销毁Web驱动程序和Web客户端实例
在这里,您可以找到有关的详细讨论


这是firefox的一个相当旧的版本(我不知道geckodriver是相应的驱动程序)。您不想使用当前版本的原因是什么?你说你想在linux上运行,但是你的stacktrace是针对Windows的。。。