【问题标题】:java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;I)V with IE and Selenium through Javajava.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;I)V 与 IE 和 Selenium 通过 Java
【发布时间】:2019-01-22 04:54:14
【问题描述】:

我正在尝试将 selenium 与 sikuli 一起使用。所以 sikuli 不会使用当前的 java 设置在 64 位上运行,因此在我的项目中将运行时更改为指向 32 位运行时环境并使用 32 添加我的 selenium jar位 iewebdriver 现在我对上面有问题查看了网络上的每个地方都添加了 guava.jar 文件 v.21 它没有解决问题将其更改为 guava 26jre.jar 仍然没有任何工作是我的代码和错误如果有人能发现我哪里出错了

错误

Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;I)V
at org.openqa.selenium.remote.service.DriverService$Builder.usingPort(DriverService.java:285)
at org.openqa.selenium.ie.InternetExplorerDriver.setupService(InternetExplorerDriver.java:242)
at org.openqa.selenium.ie.InternetExplorerDriver.<init>(InternetExplorerDriver.java:211)
at org.openqa.selenium.ie.InternetExplorerDriver.<init>(InternetExplorerDriver.java:150)
at riOSikuliAutomation.RiOSikuliAutomation.main(RiOSikuliAutomation.java:33)

这是我的代码

DesiredCapabilities cap = DesiredCapabilities.internetExplorer();
cap.setCapability("nativeEvents", false);
cap.setCapability("unexpectedAlertBehaviour", "accept");
cap.setCapability("ignoreProtectedModeSettings", true);
cap.setCapability("disable-popup-blocking", true);
cap.setCapability("enablePersistentHover", true);
cap.setCapability("ignoreZoomSetting", true);
cap.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);
InternetExplorerOptions options = new InternetExplorerOptions();
options.merge(cap);
System.setProperty("webdriver.ie.driver", "C:\\Users\\Selenium\\IEDriverServer.exe");
WebDriver driver = new InternetExplorerDriver(options);

一读到最后一行就弹出错误,有什么我做的不对请指教?

【问题讨论】:

    标签: java selenium selenium-webdriver webdriver guava


    【解决方案1】:

    此错误消息...

    java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;I)V
    

    ...暗示 IEDriverServer 无法启动/产生新的 WebBrowsing 会话,即 InternetExplorer Browser 会话。

    您的主要问题是您使用的二进制文件版本之间的不兼容性,如下所示:

    • 您提到过使用 guava-21.0-jre.jar,它非常古老

    解决方案

    您的问题的解决方案将是以下任一/所有步骤:

    • Selenium 升级到当前级别 Version 3.14.0,其中包括 guava-25.0-jre
    • Guava 升级到当前级别的 26.0-jre(根据 Selenium v​​3.14.0 Java 客户端)。

      • Maven依赖如下:

        <!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>26.0-jre</version>
        </dependency>
        
    • 确保您的依赖关系树中没有多个版本。

      • 要通过 Maven 查找现有的 guava 版本,请使用以下命令:

        mvn dependency:tree | less
        
    • 清理你的项目工作区通过你的IDE重建你的项目只需要依赖。

    • 如果问题仍然存在,请删除MAVEN_HOME 目录.m2 并重新下载二进制文件

    【讨论】:

    • @Tim Upvote the answer if this/any answer is/was help to you for the benefit of the future reader.
    猜你喜欢
    • 1970-01-01
    • 2020-03-28
    • 1970-01-01
    • 1970-01-01
    • 2017-12-28
    • 2015-10-24
    • 2018-08-07
    相关资源
    最近更新 更多