【问题标题】:Exception in thread "main" java.lang.NoSuchFieldError: LINUX线程“主”java.lang.NoSuchFieldError 中的异常:LINUX
【发布时间】:2020-05-05 05:21:06
【问题描述】:
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 社区版 2019.3\lib\idea_rt.jar=59685:C:\Program Files\JetBrains\IntelliJ IDEA 社区版 2019.3\bin" -Dfile.encoding=UTF-8 -classpath “C:\用户\华硕\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\b yte-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\存储库\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\ com\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:\我们ers\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 结束

有人告诉我确切的解决方案吗?

【问题讨论】:

  • 你能解释一下你到底想做什么吗?

标签: java maven selenium selenium-webdriver webdriver


【解决方案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 清洁 mvn 安装 mvn 测试

    • 在最坏的情况下,您可能会删除 .m2MAVEN_HOME 子目录并重新安装依赖项以执行测试。

此外,请确保:

  • JDK 升级到当前级别JDK 8u222
  • Selenium 升级到当前级别 Version 3.141.59
  • ChromeDriver 已更新到当前的ChromeDriver v79.0.3945.36 级别。
  • Chrome 已更新至当前 Chrome 版本 79.0 级别。 (根据ChromeDriver v79.0 release notes
  • 清理你的项目工作区通过你的IDE重建你的项目只需要依赖。
  • 仅限 Windows 操作系统)使用 CCleaner 工具在执行您的测试套件之前和之后清除所有操作系统琐事。
  • 仅限 LinuxOSFree Up and Release the Unused/Cached Memory in Ubuntu/Linux Mint 在执行您的测试套件之前和之后。
  • 如果您的基础 Web 客户端 版本太旧,请通过 Revo Uninstaller 卸载它并安装最新的 GA 和发布版本的 Web 客户端
  • 进行系统重启
  • 非root用户身份执行@Test
  • 始终在 tearDown(){} 方法中调用 driver.quit() 以优雅地关闭和销毁 WebDriverWeb Client 实例。

【讨论】:

    猜你喜欢
    • 2013-04-13
    • 2019-08-21
    • 2014-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多