Selenium Firefox Python在无头模式下运行初始化驱动程序超时


  • 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)

以下是追溯:

StartFirefox中的文件"c:\Users\xUser\Desktop\BOMWebService\Backend\code\FirefoxStarter.py",第51行driver=网络驱动程序。Firefox(选项=opts,可执行路径=geckoDriverFilepath(

文件"C:\Users\xUser\Desktop\BOMWebService\Backend\virEnvBOMBackend\lib\site-packages\selenium\webdriver\firefox\webdriver.py",第174行,在initkeep_live=True中(

文件"C:\Users\xUser\Desktop\BOMWebService\Backend\virEnvBOMBackend\lib\site-packages\selenium\webdriver\remote\webdriver.py",第157行,在initself.start_session(capabilities,browser_profile(中

start_session中的文件"C:\Users\xUser\Desktop\BOMWebService\Backend\virEnvBOMBackend\lib\site-packages\selenium\webdriver\remote\webdriver.py",第252行response=self.execute(Command.NEW_SESSION,parameters(

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

check_response中的文件"C:\Users\xUser\Desktop\BOMWebService\Backend\virEnvBOMBackend\lib\site-packages\selenium\webdriver\remote\errorhandler.py",第242行引发异常_类(消息、屏幕、堆栈(

selenium.com.mon.exceptions.WebDriverException:消息:超时

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

此错误消息。。。

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

意味着GeckoDriver无法启动/生成新的WebBrowser,即Firefox浏览器会话。

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

  • 您的SeleniumClient版本是3.141.0,它几乎有点旧
  • 您的GeckoDriver版本是v0.24.0
  • 您的Firefox版本为v60.9.0esr

因此,Selenium Client v3.141.0GeckoDriver v0.24.0Firefox Browser v60.9.0esr之间存在明显的不匹配


解决方案

  • Selenium升级到当前级别3.141.59版本
  • 升级GeckoDriverGeckoBriverv0.26.0级别
  • GeckoDriver位于所需位置
  • GeckoDriver对非root用户具有可执行权限
  • 升级Firefox版本至Firefox v70.0级别
  • 通过IDE清理您的项目工作区,并仅使用所需的依赖项重建项目
  • 如果您的基本Web客户端版本太旧,请将其卸载并安装最新的GA和发布的Web客户端版本
  • 进行系统重新启动
  • 以非root用户身份执行您的Test
  • 总是调用CCD_ 3方法中的CCD_;优雅地销毁WebDriverWeb客户端实例

在这里,您可以找到关于给定Geckodriver版本支持哪些Firefox浏览器版本的详细讨论?

相关内容

最新更新