INFO:HTTP状态:“ 404”-> GeckoDriver,Firefox和Selenium通过Java的“未知错误”的不正确的JSON状态映射

时间:2018-11-05 19:54:16

标签: java selenium firefox selenium-webdriver geckodriver

当我运行selenium WebDriver驱动程序= new FirefoxDriver()显示错误时,它将导入所需的所有库,但仍会重现错误

>

当我使用Firefox驱动程序()运行时,它显示以下错误

>.

您能帮我解决这个问题吗,:D

3 个答案:

答案 0 :(得分:2)

此错误消息...

org.openqa.selenium.remote.ErrorCodes toStatus INFO: HTTP Status: '404' -> incorrect JSON status mapping for 'unknown error' (500 expected) 
Exception in thread "main" org.openqa.selenium.WebDriverException: newSession 
 Build info: version: '3.8.1', revision: '6e95a6684b', time: '2017-12-01T19:05:14.666Z' 
 System info: host: 'Mac-mini-QE-Gustavo.local', ip: '192.168.1.73', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.13.6', java.version: '1.8.0_131' 
 Driver info: driver.version: FirefoxDriver

...表示 GeckoDriver 无法启动/产生新的 WebBrowsing会话,即 Firefox浏览器会话。

在使用 Selenium v​​3.x 时,理想情况下,您应该从mozilla/geckodriver下载最新版本的 GeckoDriver ,提取并提供其绝对路径。通过行System.setProperty() GeckoDriver ,如下所示:

System.setProperty("webdriver.gecko.driver", "/path/to/geckodriver");

但是,您的主要问题是正在使用的二进制文件版本之间的不兼容性

  • 您的 Selenium Client 版本是 2017-12-01T19:05:14.666Z 3.8.1 ,几乎是 a年
  • 您的 JDK版本 1.8.0_131 ,这是古老的
  • 您不知道您的 GeckoDriver 版本。
  • 您不知道您的 Firefox 版本。

因此 JDK v8u131 Selenium Client v3.8.1 之间存在明显的不匹配。

解决方案

  • JDK 升级到最新级别JDK 8u191
  • 升级到当前水平Version 3.14.0
  • GeckoDriver 升级到GeckoDriver v0.23.0级。
  • GeckoDriver位于指定位置。
  • GeckoDriver对非root用户具有可执行权限。
  • Firefox 版本升级到 Firefox vv63.0.1 级别。
  • 通过您的 IDE
  • 清理您的项目工作区重建您的项目,并且仅具有必需的依赖项。
  • 如果您的基本 Web客户端版本过旧,请通过Revo Uninstaller进行卸载,并安装最新版本的 Web客户端。 li>
  • 进行系统重启
  • 以非root用户身份执行Test
  • 始终在driver.quit()方法内调用tearDown(){},以优雅地关闭和销毁 WebDriver Web Client 实例。

答案 1 :(得分:1)

我认为您缺少以下内容:

System.setProperty("webdriver.gecko.driver", firefox driver path);

答案 2 :(得分:0)

我通过下载最新版本的geckodriver-v0.26.0-win64 \ geckodriver.exe来解决此问题