“线程中的异常”;“主要”;java.lang.NoSuchMethodError:com.google.common.base.premissions.checkState(ZLjava/lang/String;Ljava/lang/Object;)
我开发了selenium代码:“线程中的异常”;“主要”;java.lang.NoSuchMethodError:com.google.common.base.premissions.checkState(ZLjava/lang/String;Ljava/lang/Object;),java,selenium,selenium-webdriver,webdriver,guava,Java,Selenium,Selenium Webdriver,Webdriver,Guava,我开发了selenium代码: import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.edge.EdgeDriver; import org
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;
import java.util.List;
public class TestDemoQA {
public static void main(String[] args) throws InterruptedException{
System.setProperty("webdriver.edge.driver", "C:\\Users\\Suganthan\\Downloads\\MicrosoftWebDriver.exe");
WebDriver driver = new EdgeDriver();
driver.get("http://demoqa.com/");
driver.manage().window().maximize();`
我得到的错误是:
Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkState(ZLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)
我试图通过升级guava-21.0来解决这个问题。但我还是有这个错误。有人能给出解决方案吗?此错误消息
Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkState(ZLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)
…表示JVM无法启动/生成您的程序
正如@GhostCat指出的,您的主要问题是番石榴版本与您正在使用的其他二进制版本之间的不兼容
解决方案
- 将JDK升级到最新级别
- 将硒升级到当前水平
- 删除早期版本的Selenium客户端时,请确保正确删除了所有关联的JAR
- 通过IDE清理项目工作区,并仅使用所需的依赖项重建项目
- 执行
@测试
Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkState(ZLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)
…表示JVM无法启动/生成您的程序
正如@GhostCat指出的,您的主要问题是番石榴版本与您正在使用的其他二进制版本之间的不兼容
解决方案
- 将JDK升级到最新级别
- 将硒升级到当前水平
- 删除早期版本的Selenium客户端时,请确保正确删除了所有关联的JAR
- 通过IDE清理项目工作区,并仅使用所需的依赖项重建项目
- 执行
@测试
因此,简而言之,在下载了更新的JAR但仍然出现这种错误的情况下,大多数情况下都会出现某种歧义。我有点明白这是什么。所以我使用TestNG添加到项目的类路径中 当我传统地保存下面给出的Selenium罐子时,它抛出了问题中所述的错误 现在,如果您在将selenium JAR更新到最新版本后仍然出现错误,那么这就是TestNG JAR中的问题。如果您近距离导航到testngjars文件夹,您会看到guava已经存在(在大多数情况下都有一些过时的版本)。只需删除那个 在我的例子中,我在selenium jars文件夹(版本30或其他什么)中有最新的番石榴jar,但在我的TestNG文件夹中,我有大约19个版本的番石榴jar——因此给jvm造成了混乱
因此,简而言之,在下载更新过的JAR但仍会出现此类错误的情况下,大多数情况下都会出现某种歧义。您使用的库的版本不匹配。基本上,您应该检查正在使用的selenium版本的发布信息。这应该包含有关您需要使用哪个版本的番石榴的信息!您正在使用的库的版本不匹配。基本上,您应该检查正在使用的selenium版本的发布信息。这应该包含有关您需要使用哪个版本的番石榴的信息!