当我尝试在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)
答案 0 :(得分:0)
此错误消息...
java.lang.NoSuchMethodError: com.google.gson.GsonBuilder.setLenient()Lcom/google/gson/GsonBuilder;
...表示 JVM 无法找到方法setLenient()Lcom/google/gson/GsonBuilder
。
发行说明明确提到:
- 迁移Selenium Grid以减少将GSON和Apache HttpClient导出到公共API的情况。
Selenium v3.12.0 的发行说明进一步明确提到:
- 将GSON从强制JSON到Java类型的方式中删除。
- 清理Selenium的JSON处理内部,包括弃用GSON从我们的API泄漏的地方。
最后, Selenium v3.13.0 的发行说明明确提到:
- 介绍了我们自己的JSON解析器和输出器,允许将GSON从依赖项中删除。
要摆脱警告和错误,请升级到 Selenium v3.14.0 ,其中 Release Notes 明确提到:
- 完全删除了GSON依赖项。现在,我们使用反射来尝试找到类。