簡體   English   中英

java.lang.NoClassDefFoundError: com/google/common/collect/ImmutableMap 執行測試文件時

[英]java.lang.NoClassDefFoundError: com/google/common/collect/ImmutableMap when executing the test file

我的測試用例 package 具有以下代碼

package Testcases;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;
import Objectrepository.FBloginpage;

public class Testcase1 {

    @Test
    public void login() {
        System.setProperty("webdriver.chrome.driver", "C:\\Work\\chromedriver.exe"); 
        WebDriver driver=new ChromeDriver();
        driver.get("https://www.facebook.com");

        FBloginpage fb= new FBloginpage(driver);
        fb.Email().sendKeys("sample@gmail.com");
        fb.Password().sendKeys("Password");
        fb.Login().click();
    }
}

我的 Objectrepository package 在 FBloginpage.java 中有以下代碼

package Objectrepository;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;

public class FBloginpage {

    WebDriver driver;
    By username = By.id("email");
    By password = By.name("pass");
    By login = By.xpath("//input[@type='submit']");


    public FBloginpage (WebDriver driver) {
        this.driver= driver;
    }


    public WebElement Email() {
        return driver.findElement(username);
    }

    public WebElement Password() {
        return driver.findElement(password);
    }

    public WebElement Login() {
        return driver.findElement(login);
    }
}

我的 Testng.xml 文件有以下代碼

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite">
  <test thread-count="5" name="Test">
    <classes>
      <class name="Testcases.Testcase1"/>
    </classes>
  </test> <!-- Test -->
</suite> <!-- Suite -->

當我執行 Testcases1.java 文件時出現以下錯誤

[RemoteTestNG] detected TestNG version 6.14.2
FAILED: login
java.lang.NoClassDefFoundError: com/google/common/collect/ImmutableMap
    at org.openqa.selenium.remote.service.DriverService$Builder.<init>(DriverService.java:249)
    at org.openqa.selenium.chrome.ChromeDriverService$Builder.<init>(ChromeDriverService.java:96)
    at org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:89)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:123)
    at Tescases.Testcase1.login(Testcase1.java:14)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.base/java.lang.reflect.Method.invoke(Unknown Source)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1137)
    at org.testng.TestNG.runSuites(TestNG.java:1049)
    at org.testng.TestNG.run(TestNG.java:1017)
    at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:114)
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
Caused by: java.lang.ClassNotFoundException: com.google.common.collect.ImmutableMap
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
    at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
    ... 30 more

嘗試使用更新的 chromedriver 但問題仍然存在。我正在使用 Eclipse IDE 並且我導入了所有必要的庫

我開始工作時也有同樣的問題。 我選擇的解決方案是先刪除所有引用的 Selenium 文件,然后下載新的文件,然后將它們分配到一個文件夾並添加它們的引用,然后它就會開始正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM