Java Selenium WebDriver、Firefox、Centos无法找到匹配的功能集
我有一个使用SeleniumWebDriver控制FireFox的应用程序。它在Tomcat下作为一个Web应用程序运行——是的,这是一个有点奇怪的体系结构,但是这样做有很好的理由 我已经在我的MacBook上测试过了,效果很好。我的代码调用WebDriver,WebDriver调用gecko,Firefox运行,一切都很好 我现在移动到Centos-7盒子,遇到一个问题 org.openqa.selenium.SessionNotCreatedException:找不到 功能生成信息的匹配集:版本:“3.141.59”, 修订版:“e82be7d358”,时间:“2018-11-14T08:17:03”系统信息: 主机:'xxx',ip:'a.b.c.d',os.name:'Linux',os.arch:'amd64', os.version:'3.10.0-693.el7.x86_64',java.version:'1.8.0_222'驱动程序 信息:驱动程序。版本:FirefoxDriver 我正在使用Java Selenium WebDriver、Firefox、Centos无法找到匹配的功能集,java,firefox,selenium-webdriver,geckodriver,selenium-firefoxdriver,Java,Firefox,Selenium Webdriver,Geckodriver,Selenium Firefoxdriver,我有一个使用SeleniumWebDriver控制FireFox的应用程序。它在Tomcat下作为一个Web应用程序运行——是的,这是一个有点奇怪的体系结构,但是这样做有很好的理由 我已经在我的MacBook上测试过了,效果很好。我的代码调用WebDriver,WebDriver调用gecko,Firefox运行,一切都很好 我现在移动到Centos-7盒子,遇到一个问题 org.openqa.selenium.SessionNotCreatedException:找不到 功能生成信息的匹配集:
- 硒:3.141.59
- 壁虎:壁虎河0.24.0(2019-01-28)
- Firefox:Mozilla Firefox 60.8.0
m_driver = new FirefoxDriver();
我相信这就是现在的习惯用语
我补充说
JAVA_OPTS="-Dwebdriver.gecko.driver=/opt/gecko/geckodriver"
给我的tomcat.conf
我从Firefox和Gecko的旧版本中看到了这类问题,并指出这可能是一个版本问题,但据我所知,我了解的是所有内容的最新版本
请提供修复或诊断建议。我想你已经非常接近了。尽管
tomcat.conf
中的以下行看起来很完美:
JAVA_OPTS="-Dwebdriver.gecko.driver=/opt/gecko/geckodriver"
但是我仍然不确定你是否需要-Dwebdriver.firefox.driver=/usr/bin/firefox
根据webdriver.firefox.driver
的值,driver指的是常量字段,它是定义要在浏览器中安装的webdriver.xpi
浏览器扩展的位置的系统属性。如果未设置,则将使用与此类绑定的预构建扩展。除非绝对必要,否则此常量字段必须保持不变
因此,删除-Dwebdriver.firefox.driver=/usr/bin/firefox
将解决这个问题
更新 关于您的用例的更多细节将有助于我们以更好的方式调试该问题。但是,正如您所提到的,Xvfb已安装并正在运行,您需要注意以下几点:
- 确保如果在没有显示的系统上运行Firefox,则必须使用headless模式
- GeckoDriver v0.24.0无头模式的正确用法如下:
- 如果按如下方式设置
,则不再需要运行MOZ_HEADLESS=1
:xvfb
$ export MOZ_HEADLESS=1 # this way you only have to set it once
- 如果更改了系统路径,请重新启动系统
- 始终在
方法中调用tearDown(){}
,以优雅地关闭和销毁Web驱动程序和Web客户端实例driver.quit()
- 始终以非root用户的身份执行@Tests
$ export MOZ_HEADLESS=1 # this way you only have to set it once