信息:HTTP 状态:'404' -> 'unknown error' 与 GeckoDriver、Firefox 和 Selenium 通过 Java 的不正确 JSON 状态映射
INFO: HTTP Status: '404' -> incorrect JSON status mapping for 'unknown error' with GeckoDriver, Firefox and Selenium through Java
当我 运行 selenium WebDriver driver = new FirefoxDriver () 显示错误时,它导入了它需要的所有库,但它仍然重现错误
package prueba;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Prueba {
public static void main(String[] args) {
WebDriver driver= new FirefoxDriver();
driver.get("https://www.google.com/");
}
}
当我 运行 使用 Firefox 驱动程序 () 时,它显示以下错误
1541445238209 Marionette DEBUG Remote service is active
1541445238216 Marionette DEBUG Accepted connection 0 from 127.0.0.1:51066
1541445238238 Marionette TRACE 0 -> [0,1,"newSession",{"acceptInsecureCerts":true,"browserName":"firefox","capabilities":{"desiredCapabilities":{"acceptInsecureCerts":true,"browserName":"firefox"}}}]
1541445238238 Marionette TRACE 0 <- [1,1,{"error":"unknown command","message":"newSession","stacktrace":"WebDriverError@chrome://marionette/content/error.js:178: ... et@chrome://marionette/content/server.js:245:8\n_onJSONObjectReady/<@chrome://marionette/content/transport.js:490:9\n"},null]
Nov 05, 2018 3:13:58 PM 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
remote stacktrace: stack backtrace:
0: 0x10a952f64 - backtrace::backtrace::trace::h381bd5461b44fdf8
1: 0x10a95331e - backtrace::capture::Backtrace::new::hbc1a12654c8fdba8
2: 0x10a87f2ad - webdriver::error::WebDriverError::new::h482125abced50b28
3: 0x10a88b11f - geckodriver::marionette::MarionetteSession::response::hc90b9b3424fb8183
4: 0x10a89828b - geckodriver::marionette::MarionetteConnection::send_command::he82b7344fb11a670
5: 0x10a889d38 - _$LT$geckodriver..marionette..MarionetteHandler$u20$as$u20$webdriver..server..WebDriverHandler$LT$geckodriver..marionette..GeckoExtensionRoute$GT$$GT$::handle_command::hf2128d0e5b79de64
6: 0x10a829be8 - _$LT$webdriver..server..Dispatcher$LT$T$C$$u20$U$GT$$GT$::run::h03cbe31ad3bffc79
7: 0x10a88004a - webdriver::server::start::_$u7b$$u7b$closure$u7d$$u7d$::h39b3aa32dda07c86
8: 0x10a87434a - _$LT$std..panic..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::hdf61d260d4895572
9: 0x10a7b8399 - std::panicking::try::do_call::h7b2d8948e219fc68
10: 0x10ade901a - __rust_maybe_catch_panic
11: 0x10a7b7eac - std::panicking::try::h91913aec898bbfef
12: 0x10a7b53c5 - std::panic::catch_unwind::h3ab5cba0644d3617
13: 0x10a7b717c - std::thread::Builder::spawn::_$u7b$$u7b$closure$u7d$$u7d$::h27cd13f9efbf7439
14: 0x10a812686 - _$LT$F$u20$as$u20$alloc..boxed..FnBox$LT$A$GT$$GT$::call_box::hc399e39818c3f4d8
15: 0x10ade51e4 - std::sys::imp::thread::Thread::new::thread_start::h36f6d218784ec55f
16: 0x7fff58dfa660 - _pthread_body
17: 0x7fff58dfa50c - _pthread_start
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at (RemoteWebDriver.java:142)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:120)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:98)
at prueba.Prueba.main(Prueba.java:23)
/Users/macminidev2/Library/Caches/NetBeans/8.2/executor-snippets/run.xml:53: Java returned: 1
BUILD FAILED (total time: 4 seconds)
你能帮我解决这个问题吗:D
我认为您缺少以下内容:
System.setProperty("webdriver.gecko.driver", firefox driver path);
这个错误信息...
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 无法 initiate/spawn 新的 WebBrowsing Session 即 Firefox 浏览器 会话。
由于您正在使用 Selenium v3.x,理想情况下您应该从 [=16= 下载最新版本的 GeckoDriver ],通过System.setProperty()
行提取并提供GeckoDriver的绝对路径,如下:
System.setProperty("webdriver.gecko.driver", "/path/to/geckodriver");
但是,您的主要问题是您使用的二进制文件版本之间不兼容,如下所示:
- 您的 Selenium 客户端 版本是 3.8.1 2017-12-01T19:05:14.666Z 差不多大 岁 岁。
- 你的 JDK 版本 是 1.8.0_131 相当古老.
- 我们不知道您的 GeckoDriver 版本。
- 我们不知道您的 Firefox 版本。
因此 JDK v8u131 与 Selenium Client v3.8.1.[=21= 之间存在明显的不匹配]
解决方案
- 将JDK升级到最近的水平JDK 8u191。
- 将 Selenium 升级到当前级别 Version 3.14.0。
- 将 GeckoDriver 升级到 GeckoDriver v0.23.0 级别。
- GeckoDriver 存在于指定位置。
- GeckoDriver 具有非 root 用户的可执行权限。
- 将 Firefox 版本升级到 Firefox vv63.0.1 级别。
- 清理你的项目工作区通过你的IDE和重建你的项目只需要依赖。
- 如果您的基础 Web 客户端 版本太旧,则通过 Revo Uninstaller 卸载它并安装最新的 GA 和发布版本的 Web 客户端.
- 系统重启。
- 以非 root 用户身份执行
Test
。
- 始终在
tearDown(){}
方法中调用 driver.quit()
以优雅地关闭和销毁 WebDriver 和 Web Client 实例.
我通过下载最新版本的 geckodriver-v0.26.0-win64\geckodriver.exe 解决了这个问题
当我 运行 selenium WebDriver driver = new FirefoxDriver () 显示错误时,它导入了它需要的所有库,但它仍然重现错误
package prueba;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Prueba {
public static void main(String[] args) {
WebDriver driver= new FirefoxDriver();
driver.get("https://www.google.com/");
}
}
当我 运行 使用 Firefox 驱动程序 () 时,它显示以下错误
1541445238209 Marionette DEBUG Remote service is active
1541445238216 Marionette DEBUG Accepted connection 0 from 127.0.0.1:51066
1541445238238 Marionette TRACE 0 -> [0,1,"newSession",{"acceptInsecureCerts":true,"browserName":"firefox","capabilities":{"desiredCapabilities":{"acceptInsecureCerts":true,"browserName":"firefox"}}}]
1541445238238 Marionette TRACE 0 <- [1,1,{"error":"unknown command","message":"newSession","stacktrace":"WebDriverError@chrome://marionette/content/error.js:178: ... et@chrome://marionette/content/server.js:245:8\n_onJSONObjectReady/<@chrome://marionette/content/transport.js:490:9\n"},null]
Nov 05, 2018 3:13:58 PM 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
remote stacktrace: stack backtrace:
0: 0x10a952f64 - backtrace::backtrace::trace::h381bd5461b44fdf8
1: 0x10a95331e - backtrace::capture::Backtrace::new::hbc1a12654c8fdba8
2: 0x10a87f2ad - webdriver::error::WebDriverError::new::h482125abced50b28
3: 0x10a88b11f - geckodriver::marionette::MarionetteSession::response::hc90b9b3424fb8183
4: 0x10a89828b - geckodriver::marionette::MarionetteConnection::send_command::he82b7344fb11a670
5: 0x10a889d38 - _$LT$geckodriver..marionette..MarionetteHandler$u20$as$u20$webdriver..server..WebDriverHandler$LT$geckodriver..marionette..GeckoExtensionRoute$GT$$GT$::handle_command::hf2128d0e5b79de64
6: 0x10a829be8 - _$LT$webdriver..server..Dispatcher$LT$T$C$$u20$U$GT$$GT$::run::h03cbe31ad3bffc79
7: 0x10a88004a - webdriver::server::start::_$u7b$$u7b$closure$u7d$$u7d$::h39b3aa32dda07c86
8: 0x10a87434a - _$LT$std..panic..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::hdf61d260d4895572
9: 0x10a7b8399 - std::panicking::try::do_call::h7b2d8948e219fc68
10: 0x10ade901a - __rust_maybe_catch_panic
11: 0x10a7b7eac - std::panicking::try::h91913aec898bbfef
12: 0x10a7b53c5 - std::panic::catch_unwind::h3ab5cba0644d3617
13: 0x10a7b717c - std::thread::Builder::spawn::_$u7b$$u7b$closure$u7d$$u7d$::h27cd13f9efbf7439
14: 0x10a812686 - _$LT$F$u20$as$u20$alloc..boxed..FnBox$LT$A$GT$$GT$::call_box::hc399e39818c3f4d8
15: 0x10ade51e4 - std::sys::imp::thread::Thread::new::thread_start::h36f6d218784ec55f
16: 0x7fff58dfa660 - _pthread_body
17: 0x7fff58dfa50c - _pthread_start
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at (RemoteWebDriver.java:142)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:120)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:98)
at prueba.Prueba.main(Prueba.java:23)
/Users/macminidev2/Library/Caches/NetBeans/8.2/executor-snippets/run.xml:53: Java returned: 1
BUILD FAILED (total time: 4 seconds)
你能帮我解决这个问题吗:D
我认为您缺少以下内容:
System.setProperty("webdriver.gecko.driver", firefox driver path);
这个错误信息...
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 无法 initiate/spawn 新的 WebBrowsing Session 即 Firefox 浏览器 会话。
由于您正在使用 Selenium v3.x,理想情况下您应该从 [=16= 下载最新版本的 GeckoDriver ],通过System.setProperty()
行提取并提供GeckoDriver的绝对路径,如下:
System.setProperty("webdriver.gecko.driver", "/path/to/geckodriver");
但是,您的主要问题是您使用的二进制文件版本之间不兼容,如下所示:
- 您的 Selenium 客户端 版本是 3.8.1 2017-12-01T19:05:14.666Z 差不多大 岁 岁。
- 你的 JDK 版本 是 1.8.0_131 相当古老.
- 我们不知道您的 GeckoDriver 版本。
- 我们不知道您的 Firefox 版本。
因此 JDK v8u131 与 Selenium Client v3.8.1.[=21= 之间存在明显的不匹配]
解决方案
- 将JDK升级到最近的水平JDK 8u191。
- 将 Selenium 升级到当前级别 Version 3.14.0。
- 将 GeckoDriver 升级到 GeckoDriver v0.23.0 级别。
- GeckoDriver 存在于指定位置。
- GeckoDriver 具有非 root 用户的可执行权限。
- 将 Firefox 版本升级到 Firefox vv63.0.1 级别。
- 清理你的项目工作区通过你的IDE和重建你的项目只需要依赖。
- 如果您的基础 Web 客户端 版本太旧,则通过 Revo Uninstaller 卸载它并安装最新的 GA 和发布版本的 Web 客户端.
- 系统重启。
- 以非 root 用户身份执行
Test
。 - 始终在
tearDown(){}
方法中调用driver.quit()
以优雅地关闭和销毁 WebDriver 和 Web Client 实例.
我通过下载最新版本的 geckodriver-v0.26.0-win64\geckodriver.exe 解决了这个问题