java.lang.NoSuchMethodError:com.google.gson.GsonBuilder.setLenient()Lcom / google / gson / GsonBuilder;

时间:2018-08-13 09:48:26

标签: json selenium selenium-webdriver webdriver gson

当我尝试在3.11中创建RemoteWebDriver时,在下面看到此错误。 直到3.10为止,它的效果都很好。我现在已经恢复到3.10。

我尝试从Google添加gson jar,但仍然看到相同的错误。 还有其他人看到吗?我正在将一台硒服务器作为集线器,然后运行 使用ff或chrome的网络驱动程序针对它的节点,同样的问题。

com.google.gson.GsonBuilder.setLenient()Lcom/google/gson/GsonBuilder;

java.lang.NoSuchMethodError: com.google.gson.GsonBuilder.setLenient()Lcom/google/gson/GsonBuilder;
at org.openqa.selenium.json.Json.(Json.java:47)
at org.openqa.selenium.logging.profiler.HttpProfilerLogEntry.constructMessage(HttpProfilerLogEntry.java:37)
at org.openqa.selenium.logging.profiler.HttpProfilerLogEntry.(HttpProfilerLogEntry.java:29)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:135)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:545)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:209)
at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:132)
at oracle.ojet.automation.test.selenium.WebDriverManager._buildRemoteWebDriver(WebDriverManager.java:573)

1 个答案:

答案 0 :(得分:0)

此错误消息...

java.lang.NoSuchMethodError: com.google.gson.GsonBuilder.setLenient()Lcom/google/gson/GsonBuilder;

...表示 JVM 无法找到方法setLenient()Lcom/google/gson/GsonBuilder


原因

Selenium v​​3.10.0

发行说明明确提到:

  
      
  • 迁移Selenium Grid以减少将GSON和Apache HttpClient导出到公共API的情况。
  •   

Selenium v​​3.12.0 的发行说明进一步明确提到:

  
      
  • 将GSON从强制JSON到Java类型的方式中删除。
  •   
  • 清理Selenium的JSON处理内部,包括弃用GSON从我们的API泄漏的地方。
  •   

最后, Selenium v​​3.13.0 发行说明明确提到:

  
      
  • 介绍了我们自己的JSON解析器和输出器,允许将GSON从依赖项中删除。
  •   

解决方案

要摆脱警告和错误,请升级到 Selenium v​​3.14.0 ,其中 Release Notes 明确提到:

  
      
  • 完全删除了GSON依赖项。现在,我们使用反射来尝试找到类。
  •