驱动程序信息:driver.version:Selenium 和 Geckodriver 出现未知 (Behat\Mink\Exception\DriverException) 错误
Driver info: driver.version: unknown (Behat\Mink\Exception\DriverException) error with Selenium and Geckodriver
情况如下:我正在使用 Behat 在 Symfony 上进行 运行 验收测试。为此,我使用 Geckodriver 启动了一个 Selenium 实例,然后 运行 Behat。在本地一切正常(太棒了!)。
但是当它 运行 执行 Github 操作时,它失败了。我检查了版本,我什至对 geckodriver 和 selenium.jar 文件进行了版本控制以使用完全相同的版本(尽管它们已经存在于 github 操作中),但没有任何效果。
所以我正在寻找任何帮助来调试此错误。以下是命令及其结果:
$ java -jar -Dwebdriver.gecko.driver=/usr/local/share/gecko_driver /usr/share/java/selenium-server-standalone.jar &
14:19:46.106 INFO [GridLauncherV3.parse] - Selenium server version: 3.141.59, revision: e82be7d358
14:19:46.369 INFO [GridLauncherV3.lambda$buildLaunchers] - Launching a standalone Selenium Server on port 4444
2020-05-29 14:19:46.780:INFO::main: Logging initialized @1350ms to org.seleniumhq.jetty9.util.log.StdErrLog
14:19:47.657 INFO [WebDriverServlet.<init>] - Initialising WebDriverServlet
14:19:47.758 INFO [SeleniumServer.boot] - Selenium Server is up and running on port 4444
./vendor/bin/behat -s acceptance
Could not open connection: Unable to create new service: GeckoDriverService
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:53'
System info: host: 'fv-az33', ip: '10.1.0.4', os.name: 'Linux', os.arch: 'amd64', os.version: '5.3.0-1022-azure', java.version: '1.8.0_252'
Driver info: driver.version: unknown (Behat\Mink\Exception\DriverException)
这个错误信息...
Driver info: driver.version: unknown (Behat\Mink\Exception\DriverException)
...暗示 GeckoDriver 未被 浏览上下文 识别,即 Firefox 浏览器.
解决方案
确保:
- JDK 升级到当前级别 JDK 8u251.
- Selenium 已升级到当前级别 Version 3.141.59。
- GeckoDriver 升级到 GeckoDriver v0.26.0 级别。
- Firefox 已升级到当前的 Firefox v76.0 级别。
- GeckoDriver 出现在所需位置。
- GeckoDriver 具有非 root 用户的可执行权限。
- 如果您的基础 Web Client 版本太旧,则卸载它并安装最新的 GA 和发布版本的 Web Client。
- 系统重启。
- 以非 root 用户身份执行
Test
。
- 始终在
tearDown(){}
方法中调用 driver.quit()
以优雅地关闭和销毁 WebDriver 和 Web Client 实例.
参考
您可以在以下位置找到一些相关讨论:
- Driver info: driver.version: unknown with ChromeDriver Chrome using Selenium and Python
好的,我刚刚解决了我的问题。我认为这是由于两件事:
- 首先,我没有使用无头模式。我不知道使用 Geckodriver 来设置它,因为我终于使用了 Chromedriver
- 其次,github 操作的文档具有误导性。它说 'Chrome Driver is available via CHROMEWEBDRIVER environment variable',但实际上它只是环境变量中的目录。所以驱动程序的路径是
$CHROMEWEBDRIVER/chromedriver
(与$GECKOWEBDRIVER相同)
有关信息,这是我的行为配置:
javascript_session:
selenium2:
browser: chrome
capabilities:
chrome:
switches:
- "--headless"
- "--disable-gpu"
然后 运行 硒:
java -Dwebdriver.chrome.driver=$CHROMEWEBDRIVER/chromedriver -jar $SELENIUM_JAR_PATH &
情况如下:我正在使用 Behat 在 Symfony 上进行 运行 验收测试。为此,我使用 Geckodriver 启动了一个 Selenium 实例,然后 运行 Behat。在本地一切正常(太棒了!)。
但是当它 运行 执行 Github 操作时,它失败了。我检查了版本,我什至对 geckodriver 和 selenium.jar 文件进行了版本控制以使用完全相同的版本(尽管它们已经存在于 github 操作中),但没有任何效果。
所以我正在寻找任何帮助来调试此错误。以下是命令及其结果:
$ java -jar -Dwebdriver.gecko.driver=/usr/local/share/gecko_driver /usr/share/java/selenium-server-standalone.jar &
14:19:46.106 INFO [GridLauncherV3.parse] - Selenium server version: 3.141.59, revision: e82be7d358
14:19:46.369 INFO [GridLauncherV3.lambda$buildLaunchers] - Launching a standalone Selenium Server on port 4444
2020-05-29 14:19:46.780:INFO::main: Logging initialized @1350ms to org.seleniumhq.jetty9.util.log.StdErrLog
14:19:47.657 INFO [WebDriverServlet.<init>] - Initialising WebDriverServlet
14:19:47.758 INFO [SeleniumServer.boot] - Selenium Server is up and running on port 4444
./vendor/bin/behat -s acceptance
Could not open connection: Unable to create new service: GeckoDriverService
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:53'
System info: host: 'fv-az33', ip: '10.1.0.4', os.name: 'Linux', os.arch: 'amd64', os.version: '5.3.0-1022-azure', java.version: '1.8.0_252'
Driver info: driver.version: unknown (Behat\Mink\Exception\DriverException)
这个错误信息...
Driver info: driver.version: unknown (Behat\Mink\Exception\DriverException)
...暗示 GeckoDriver 未被 浏览上下文 识别,即 Firefox 浏览器.
解决方案
确保:
- JDK 升级到当前级别 JDK 8u251.
- Selenium 已升级到当前级别 Version 3.141.59。
- GeckoDriver 升级到 GeckoDriver v0.26.0 级别。
- Firefox 已升级到当前的 Firefox v76.0 级别。
- GeckoDriver 出现在所需位置。
- GeckoDriver 具有非 root 用户的可执行权限。
- 如果您的基础 Web Client 版本太旧,则卸载它并安装最新的 GA 和发布版本的 Web Client。
- 系统重启。
- 以非 root 用户身份执行
Test
。 - 始终在
tearDown(){}
方法中调用driver.quit()
以优雅地关闭和销毁 WebDriver 和 Web Client 实例.
参考
您可以在以下位置找到一些相关讨论:
- Driver info: driver.version: unknown with ChromeDriver Chrome using Selenium and Python
好的,我刚刚解决了我的问题。我认为这是由于两件事:
- 首先,我没有使用无头模式。我不知道使用 Geckodriver 来设置它,因为我终于使用了 Chromedriver
- 其次,github 操作的文档具有误导性。它说 'Chrome Driver is available via CHROMEWEBDRIVER environment variable',但实际上它只是环境变量中的目录。所以驱动程序的路径是
$CHROMEWEBDRIVER/chromedriver
(与$GECKOWEBDRIVER相同)
有关信息,这是我的行为配置:
javascript_session:
selenium2:
browser: chrome
capabilities:
chrome:
switches:
- "--headless"
- "--disable-gpu"
然后 运行 硒:
java -Dwebdriver.chrome.driver=$CHROMEWEBDRIVER/chromedriver -jar $SELENIUM_JAR_PATH &