java.lang.NoClassDefFoundError: com/google/common/collect/ImmutableMap error using GeckoDriver Firefox through Selenium in Java
java.lang.NoClassDefFoundError: com/google/common/collect/ImmutableMap error using GeckoDriver Firefox through Selenium in Java
我正在使用此代码,但出现此错误:
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/collect/ImmutableMap
at org.openqa.selenium.firefox.FirefoxDriver.<clinit>FirefoxDriver.java:108)
at Selenium_1.main(Selenium_1.java:13)
Caused by: java.lang.ClassNotFoundException: com.google.common.collect.ImmutableMap
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 2 more
无法解决。我在日食中工作,请你帮帮我。
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
//comment the above line and uncomment below line to use Chrome
//import org.openqa.selenium.chrome.ChromeDriver;
public class Selenium_1 {
public static void main(String[] args) {
// declaration and instantiation of objects/variables
System.setProperty("webdriver.firefox.marionette","C:\Program Files\Java\jre1.8.0_231\lib\ext\geckodriver.exe");
//System.setProperty("webdriver.chrome.driver", "/path/to/chrome driver");
WebDriver driver = new FirefoxDriver();
//comment the above 2 lines and uncomment below 2 lines to use Chrome
//System.setProperty("webdriver.chrome.driver","G:\chromedriver.exe");
//WebDriver driver = new ChromeDriver();
String baseUrl = "http://demo.guru99.com/test/newtours/";
String expectedTitle = "Welcome: Mercury Tours";
String actualTitle = "";
// launch Fire fox and direct it to the Base URL
driver.get(baseUrl);
// get the actual value of the title
actualTitle = driver.getTitle();
/*
* compare the actual title of the page with the expected one and print
* the result as "Passed" or "Failed"
*/
if (actualTitle.contentEquals(expectedTitle)){
System.out.println("Test Passed!");
} else {
System.out.println("Test Failed");
}
//close Fire fox
driver.close();
}
}
如果您需要了解任何其他信息,请告诉我...我完全被困住了...帮助!帮助!帮助!
这个错误信息...
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/collect/ImmutableMap
at org.openqa.selenium.firefox.FirefoxDriver
...暗示文件 com/google/common/collect/ImmutableMap
可能已损坏,或者您使用的二进制文件版本与 guava 版本 / 依赖关系 (maven).
您需要处理以下几件事:
在 System.setProperty()
行中,您需要将 webdriver.firefox.marionette
更改为 webdriver.gecko.driver
。如此有效,代码行将是:
System.setProperty("webdriver.gecko.driver","C:\Program Files\Java\jre1.8.0_231\lib\ext\geckodriver.exe");
如果您正在使用 maven,删除 corrup/incompatible .m2
文件夹可以解决您的问题。
升级 JDK 到最近的水平 JDK 8u222.
将 Selenium 升级到当前水平 Version 3.141.59。
将 GeckoDriver 升级到 GeckoDriver v0.26.0 级别。
GeckoDriver 出现在所需位置。
GeckoDriver 具有非 root 用户的可执行权限。
将 Firefox 版本升级到 Firefox v70.0 级别。
通过IDE清理您的项目工作区 ] 和 重建 您的项目仅具有必需的依赖项。
(WindowsOS only) 使用CCleaner工具擦除前后所有OS杂事测试套件.
的执行
(LinuxOS only) Free Up and Release the Unused/Cached Memory in Ubuntu/Linux Mint 在你的测试套件[=执行之前和之后112=].
如果您的基础 Web Client 版本太旧,则通过 Revo Uninstaller 卸载它并安装最新的 GA 和发布版本 网络客户端.
系统重启。
以非 root 用户身份执行 Test
。
始终在 tearDown(){}
方法中调用 driver.quit()
来关闭和销毁 WebDriver 和 Web Client 实例优雅。
参考
您可以在以下位置找到相关讨论:
我正在使用此代码,但出现此错误:
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/collect/ImmutableMap
at org.openqa.selenium.firefox.FirefoxDriver.<clinit>FirefoxDriver.java:108)
at Selenium_1.main(Selenium_1.java:13)
Caused by: java.lang.ClassNotFoundException: com.google.common.collect.ImmutableMap
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 2 more
无法解决。我在日食中工作,请你帮帮我。
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
//comment the above line and uncomment below line to use Chrome
//import org.openqa.selenium.chrome.ChromeDriver;
public class Selenium_1 {
public static void main(String[] args) {
// declaration and instantiation of objects/variables
System.setProperty("webdriver.firefox.marionette","C:\Program Files\Java\jre1.8.0_231\lib\ext\geckodriver.exe");
//System.setProperty("webdriver.chrome.driver", "/path/to/chrome driver");
WebDriver driver = new FirefoxDriver();
//comment the above 2 lines and uncomment below 2 lines to use Chrome
//System.setProperty("webdriver.chrome.driver","G:\chromedriver.exe");
//WebDriver driver = new ChromeDriver();
String baseUrl = "http://demo.guru99.com/test/newtours/";
String expectedTitle = "Welcome: Mercury Tours";
String actualTitle = "";
// launch Fire fox and direct it to the Base URL
driver.get(baseUrl);
// get the actual value of the title
actualTitle = driver.getTitle();
/*
* compare the actual title of the page with the expected one and print
* the result as "Passed" or "Failed"
*/
if (actualTitle.contentEquals(expectedTitle)){
System.out.println("Test Passed!");
} else {
System.out.println("Test Failed");
}
//close Fire fox
driver.close();
}
}
如果您需要了解任何其他信息,请告诉我...我完全被困住了...帮助!帮助!帮助!
这个错误信息...
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/collect/ImmutableMap
at org.openqa.selenium.firefox.FirefoxDriver
...暗示文件 com/google/common/collect/ImmutableMap
可能已损坏,或者您使用的二进制文件版本与 guava 版本 / 依赖关系 (maven).
您需要处理以下几件事:
在
System.setProperty()
行中,您需要将webdriver.firefox.marionette
更改为webdriver.gecko.driver
。如此有效,代码行将是:System.setProperty("webdriver.gecko.driver","C:\Program Files\Java\jre1.8.0_231\lib\ext\geckodriver.exe");
如果您正在使用 maven,删除 corrup/incompatible
.m2
文件夹可以解决您的问题。升级 JDK 到最近的水平 JDK 8u222.
将 Selenium 升级到当前水平 Version 3.141.59。
将 GeckoDriver 升级到 GeckoDriver v0.26.0 级别。
GeckoDriver 出现在所需位置。
GeckoDriver 具有非 root 用户的可执行权限。
将 Firefox 版本升级到 Firefox v70.0 级别。
通过IDE清理您的项目工作区 ] 和 重建 您的项目仅具有必需的依赖项。
(WindowsOS only) 使用CCleaner工具擦除前后所有OS杂事测试套件.
的执行(LinuxOS only) Free Up and Release the Unused/Cached Memory in Ubuntu/Linux Mint 在你的测试套件[=执行之前和之后112=].
如果您的基础 Web Client 版本太旧,则通过 Revo Uninstaller 卸载它并安装最新的 GA 和发布版本 网络客户端.
系统重启。
以非 root 用户身份执行
Test
。始终在
tearDown(){}
方法中调用driver.quit()
来关闭和销毁 WebDriver 和 Web Client 实例优雅。
参考
您可以在以下位置找到相关讨论: