Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/collect/ImmutableMap error using Selenium Java

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/collect/ImmutableMap error using Selenium Java

代码试验:

package SeleniumSessions;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;


public class TestChrome {

    public static void main(String[] args) {
       System.setProperty("webdriver.chrome.driver", "C:\chromedriver.exe");

        WebDriver driver=new ChromeDriver();

        driver.get("https://www.google.com");

    }
}

错误:

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/collect/ImmutableMap
    at org.openqa.selenium.chrome.ChromeDriver$ChromeDriverCommandExecutor.getExtraCommands(ChromeDriver.java:122)
    at org.openqa.selenium.chrome.ChromeDriver$ChromeDriverCommandExecutor.<init>(ChromeDriver.java:118)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:106)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:93)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:48)
    at SeleniumSessions.TestChrome.main

错误快照:

这个错误信息...

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/collect/ImmutableMap

...暗示文件 com/google/common/collect/ImmutableMap 可能已损坏或您使用的二进制文件版本之间存在一些不兼容。


此外,您还需要处理以下几件事:

  • 而不是在 C:\ 下存储 chromedriver.exe 二进制文件它在目录中 C:\BrowserDrivers\chromedriver.exe 并相应地更改 System.setProperty() 行。如此有效,代码行将是:

    System.setProperty("webdriver.gecko.driver","C:\BrowserDrivers\chromedriver.exe");
    

还要确保:


参考

您可以在以下位置找到相关讨论: