当前位置: 首页 > 面试题库 >

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

濮佑运
2023-03-14
问题内容

当我运行selenium WebDriver驱动程序= 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


问题答案:

此错误消息…

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浏览器 会话。

当您使用 硒3.x版 ,理想情况下,你应该下载最新版本的 GeckoDriver 从Mozilla浏览器/
geckodriver
,提取和提供的绝对路径
GeckoDriver 通过线路System.setProperty()如下:

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

但是,您的主要问题是所使用的二进制文件版本之间的 不兼容 ,如下所示:

  • 您的 Selenium客户端 版本为 2017 年12月1日 -19T19:05:14.666Z的 3.8.1 现在快 一年了
  • 您的 JDK版本1.8.0_131 ,这非常 古老
  • 知道您的 GeckoDriver 版本。
  • 我们不知道您的 Firefox 版本。

所以存在之间存在明显的不匹配 JDK v8u131硒客户端v3.8.1

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


 类似资料:
  • 我在一个真正的设备上使用Appium进行自动化移动铬浏览器。我需要在网上刷卡。我用了下面的脚本 执行后,我在eclipse中得到以下错误 信息:HTTP状态:“404”- 因此,刷卡操作未完成。这里怎么了? 下面是Appium的日志 [W3C]使用以下参数调用AppiumDriver.performTouch()[[{“action”:“press”,“options”:{“x”:0,“y”:0}

  • 我正在Eclipse中运行tomcat 7...我得到以下错误当我运行我的html调用一个servlet来执行一个简单的计算…错误为 我的html文件是 我以前做过,但当我启动服务器时,我得到以下错误

  • 问题内容: 以下是与我的流程相关的详细信息- 页面-1-登录网页 登录后,出现URL(将其称为元素1) 单击元素1之后,网页将再次加载,并且我需要单击其他元素(将其称为元素2)。 问题- 驱动程序被卡住,或者没有单击元素1,或者在添加足够的等待后被单击,但是现在驱动程序被卡在这个流程中,您可以从下面的代码中观察到,一旦被调用,然后在10秒钟后我应该收到一条消息“ 睡眠已完成。现在返回到调用类 ”

  • 我在youtube上按部就班地学习教程,但我没有得到结果。代码如下: 主要应用 或来自Chrome的以下内容: 白标签错误页 此应用程序没有/error的显式映射,因此您将其视为一种后退。

  • 问题内容: 当前,我们将一个有状态的bean注入到Servlet中。问题在于,有时在有状态Bean上执行方法时会得到。 在上面的代码中,将检查是否需要打开到报表中指定的数据库的新连接,然后根据查询创建HTML中的报表,该查询是根据指定的参数构建的。 之所以选择在无状态Bean上使用有状态Bean,是因为我们需要打开与未知数据库的数据库连接并对其执行查询。对于无状态Bean,重复地打开和关闭与该Be

  • 关于这一高级话题,请先阅读提供者状态一节的介绍。 当按照以下形式来阅读时,提供者状态中的文本应该具有足够的可读性(自动生成的文档是按这样的形式展示的): Given an alligator with the name Mary exists * Upon receiving a request to retrieve an alligator by name ** from Some Consu