- 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.0、GeckoDriver v0.24.0和Firefox Browser v60.9.0esr之间存在明显的不匹配
解决方案
- 将Selenium升级到当前级别3.141.59版本
- 升级GeckoDriver至GeckoBriverv0.26.0级别
- GeckoDriver位于所需位置
- GeckoDriver对非root用户具有可执行权限
- 升级Firefox版本至Firefox v70.0级别
- 通过IDE清理您的项目工作区,并仅使用所需的依赖项重建项目
- 如果您的基本Web客户端版本太旧,请将其卸载并安装最新的GA和发布的Web客户端版本
- 进行系统重新启动
- 以非root用户身份执行您的
Test
- 总是调用CCD_ 3方法中的CCD_;优雅地销毁WebDriver和Web客户端实例
在这里,您可以找到关于给定Geckodriver版本支持哪些Firefox浏览器版本的详细讨论?