Selenium Firefox Python在无头模式下运行初始化驱动程序时超时 Firefox版本:60.9.0esr(32位) Selenium版本:3.141.0 Geckodriver版本:0.24.0(32位)
所以现在一切都在无头模式下工作。但是我需要在一个没有GUI的linux服务器上运行这个python脚本(因此需要无头模式)。出于某种原因,我所有的无头运行尝试都会导致selenium web驱动程序在初始化时超时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()
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
解决方案
- 将硒升级到当前水平
- 将GeckoDriver升级至标高
- 壁虎河位于所需位置
- GeckoDriver对非root用户具有可执行权限
- 将Firefox版本升级到Firefox v70.0级别
- 通过IDE清理项目工作区,并仅使用所需的依赖项重建项目
- 如果您的基本Web客户端版本太旧,请卸载它并安装最新的GA和Web客户端发布版本
- 重新启动系统
- 以非root用户身份执行
测试
- 始终在
方法中调用tearDown(){}
,以优雅地关闭和销毁Web驱动程序和Web客户端实例driver.quit()
这是firefox的一个相当旧的版本(我不知道geckodriver是相应的驱动程序)。您不想使用当前版本的原因是什么?你说你想在linux上运行,但是你的stacktrace是针对Windows的。。。