![](/img/trans.png)
[英]Error :: java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V
[英]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升級到當前的26.0-jre級別(根據Selenium v3.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.