簡體   English   中英

java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;I)V 與 IE 和 Selenium 通過 Java

[英]java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;I)V with IE and Selenium through Java

我正在嘗試將 selenium 與 sikuli 一起使用。所以 sikuli 不會使用當前的 java 設置在 64 位上運行,因此在我的項目中將運行時更改為指向 32 位運行時環境,並現在使用 32 位 iewebdriver 添加了我的 selenium jar我有上面的問題 查看網絡上的每個地方都添加了 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.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;I)V

...暗示IEDriverServer無法啟動/生成新的WebBrowsing 會話,InternetExplorer 瀏覽器會話。

您的主要問題是您使用的二進制文件版本之間的不兼容,如下所示:

  • 您已經提到使用guava-21.0-jre.jar ,這是非常古老的

解決方案

您的問題的解決方案是以下任一/所有步驟:

  • Selenium升級到當前級別版本 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查找現有的番石榴版本,請使用以下命令:

       mvn dependency:tree | less
  • 通過IDE清理項目工作區並僅使用所需的依賴項重建項目。

  • 如果問題仍然存在,請刪除MAVEN_HOME目錄.m2並重新下載二進制文件

暫無
暫無

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

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