簡體   English   中英

線程“main”中的異常 java.lang.NoSuchFieldError: LINUX

[英]Exception in thread "main" java.lang.NoSuchFieldError: LINUX

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

public class Sample {
    public static void main(String[] args) throws InterruptedException {
        System.setProperty("Webdriver.chrome.driver","C:\\Users\\Asus\\Downloads\\jar_files (1)\\selenium-chrome-driver-3.141.59");
        WebDriver driver = new ChromeDriver();
        driver.get("https://www.guru99.com");
        //driver.manage().window().maximize();
        Thread.sleep(5000);
        driver.quit();
        driver.close();
    }
}

使用此代碼,我收到以下錯誤:

"C:\\Program Files\\Java\\jdk-13.0.1\\bin\\java.exe" "-javaagent:C:\\Program Files\\JetBrains\\IntelliJ IDEA Community Edition 2019.3\\lib\\idea_rt.jar=59685:C:\\ Program Files\\JetBrains\\IntelliJ IDEA Community Edition 2019.3\\bin" -Dfile.encoding=UTF-8 -classpath "C:\\Users\\Asus\\Maven wokspace\\target\\classes;C:\\Users\\Asus.m2\\repository\\org \\apache\\poi\\poi\\3.12\\poi-3.12.jar;C:\\Users\\Asus.m2\\repository\\commons-codec\\commons-codec\\1.9\\commons-codec-1.9.jar;C:\\Users\\Asus .m2\\repository\\org\\apache\\poi\\poi-ooxml\\3.12\\poi-ooxml-3.12.jar;C:\\Users\\Asus.m2\\repository\\org\\apache\\poi\\poi-ooxml-schemas\\3.12\\ poi-ooxml-schemas-3.12.jar;C:\\Users\\Asus.m2\\repository\\org\\apache\\xmlbeans\\xmlbeans\\2.6.0\\xmlbeans-2.6.0.jar;C:\\Users\\Asus.m2\\ repository\\stax\\stax-api\\1.0.1\\stax-api-1.0.1.jar;C:\\Users\\Asus.m2\\repository\\org\\seleniumhq\\webdriver\\webdriver-common\\0.9.7376\\webdriver-common -0.9.7376.jar;C:\\Users\\Asus.m2\\repository\\org\\seleniumhq\\selenium\\selenium-chrome-driver\\3.141.59\\selenium-chrome-driver-3.141.59.jar;C:\\Users \\Asus.m2\\repository\\org\\seleniumhq\\selenium\\selenium-api\\3.141.59\\selenium-api-3.141.59.jar;C:\\Users\\Asus.m2\\repository\\org\\seleniumhq\\selenium\\selenium- remote-driver\\3.141.59\\selenium-remote-driver-3.141.59.jar;C:\\Users\\Asus.m2\\repository\\net\\bytebuddy\\byte-buddy\\1.8.15\\byte-buddy-1.8.15 .jar;C:\\Users\\Asus.m2\\repository\\org\\apache\\commons\\commons-exec\\1.3\\commons-exec-1.3.jar;C:\\Users\\Asus.m2\\repository\\com\\google\\guava \\guava\\25.0-jre\\guava-25.0-jre.jar;C:\\Users\\Asus.m2\\repository\\com\\google\\code\\findbugs\\jsr305\\1.3.9\\jsr305-1.3.9.jar;C: \\Users\\Asus.m2\\repository\\org\\checkerframework\\checker-compat-qual\\2.0.0\\checker-compat-qual-2.0.0.jar;C:\\Users\\Asus.m2\\repository\\com\\google\\ errorprone\\error_prone_annotations\\2.1.3\\error_prone_annotations-2.1.3.jar;C:\\Users\\Asus.m2\\repository\\com\\google\\j2objc\\j2objc-annotations\\1.1\\j2objc-annotations-1.1.jar;C:\\ Users\\Asus.m2\\repository\\org\\codehaus\\mojo\\animal-sniffer-annotations\\1.14\\animal-sniffer-annotations-1.14.jar;C:\\Users\\Asus.m2\\repository\\co m\\squareup\\okhttp3\\okhttp\\3.11.0\\okhttp-3.11.0.jar;C:\\Users\\Asus.m2\\repository\\com\\squareup\\okio\\okio\\1.14.0\\okio-1.14.0.jar ;C:\\Users\\Asus.m2\\repository\\org\\testng\\testng\\7.1.0\\testng-7.1.0.jar;C:\\Users\\Asus.m2\\repository\\com\\beust\\jcommander\\1.72\\jcommander -1.72.jar;C:\\Users\\Asus.m2\\repository\\com\\google\\inject\\guice\\4.1.0\\guice-4.1.0-no_aop.jar;C:\\Users\\Asus.m2\\repository\\javax \\inject\\javax.inject\\1\\javax.inject-1.jar;C:\\Users\\Asus.m2\\repository\\aopalliance\\aopalliance\\1.0\\aopalliance-1.0.jar;C:\\Users\\Asus.m2\\repository \\org\\yaml\\snakeyaml\\1.21\\snakeyaml-1.21.jar" org.example.Sample

線程“main”中的異常 java.lang.NoSuchFieldError: LINUX

在 org.openqa.selenium.net.PortProber.(PortProber.java:43)

在 org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:351)

在 org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:94)

在 org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:123)

在 org.example.Sample.main(Sample.java:8)

進程以退出代碼 1 結束

有人告訴我確切的解決方案嗎?

這個錯誤信息...

Exception in thread "main" java.lang.NoSuchFieldError: LINUX

...暗示源中的Platform.LINUX字段不存在。


從錯誤跟蹤日志中也可以明顯看出您正在使用並且在以下情況下可能會發生此錯誤:

  • 舊的和不兼容的二進制文件。
  • CLASSPATH 沖突,即項目中已經存在類似的 jar 文件。

解決方案

您必須注意以下幾點:

  • 您需要將大寫W替換為小w ,如下所示:

     "webdriver.chrome.driver"
  • 當您使用Maven 時

    • 如果您添加了selenium-chrome-driver依賴項,則不需要使用System.setProperty()行。
    • 您需要執行以下命令來清除以前的依賴項,安裝新的依賴項並執行您的測試:

    mvn clean mvn install mvn test

    • 在最壞的情況下,您可能已刪除.m2MAVEN_HOME子目錄並重新安裝依賴項以執行您的測試。

此外,請確保:

  • JDK升級到當前級別JDK 8u222
  • Selenium升級到當前級別Version 3.141.59
  • ChromeDriver更新到當前ChromeDriver v79.0.3945.36級別。
  • Chrome已更新到當前Chrome 版本 79.0級別。 (根據ChromeDriver v79.0 發行說明
  • 通過IDE清理項目工作區並僅使用所需的依賴項重建項目。
  • 僅限Windows 操作系統)在執行測試套件之前和之后,使用CCleaner工具清除所有操作系統雜務。
  • 僅限 LinuxOS )在執行測試套件之前和之后釋放和釋放 Ubuntu/Linux Mint 中未使用/緩存的內存
  • 如果您的基本Web Client版本太舊,請通過Revo Uninstaller卸載它並安裝最新的 GA 和發布版本的Web Client
  • 進行系統重啟
  • 非 root用戶身份執行@Test
  • 始終在tearDown(){}方法中調用driver.quit()以優雅地關閉和銷毀WebDriverWeb Client實例。

暫無
暫無

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

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