首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Chrome :使用ChromeDriver和Chrome通过命令行界面执行测试时的com.google.common.base.Preconditions.checkState(ZLjava/lang/String;)

Chrome :使用ChromeDriver和Chrome通过命令行界面执行测试时的com.google.common.base.Preconditions.checkState(ZLjava/lang/String;)
EN

Stack Overflow用户
提问于 2018-08-07 22:28:05
回答 2查看 564关注 0票数 1

我有一个TestNG测试,当在Eclipse中作为TestNG套件运行时,它可以正常工作,但是当通过命令行运行时,它会失败。我看到了无法启动浏览器的问题,但类路径设置工作正常,因为我刚刚打印了helloworl,而没有webdriver code.Can。有人能帮我看一下这里缺少的内容吗?

代码语言:javascript
运行
复制
package testngex;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.Select;
import org.testng.annotations.Test;

public class Login {

    @Test

    public void main() {

        WebDriver driver=new ChromeDriver();
        driver.manage().window().maximize();
        //Implicit wait
        driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
           driver.get("url");
        driver.findElement(By.id("Username")).sendKeys("xxx");
        driver.findElement(By.id("Password")).sendKeys("xxx);
        driver.findElement(By.id("imgbtnLogin")).click();
        driver.quit();

    }
}

XML文件

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
 <suite name="Suite">
  <test thread-count="5" name="Test">
    <classes>
      <class name="testngex.Login"/>
    </classes>
  </test> <!-- Test -->
</suite> <!-- Suite -->

错误测试

代码语言:javascript
运行
复制
testngex.Login#main

com.google.common.base.Preconditions.checkState(ZLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;:

Exception java.lang.NoSuchMethodError)V在org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:125)在org.openqa.selenium.chrome.ChromeDriverService.access$000(ChromeDriverService.java:35)在org.openqa.selenium.chrome.ChromeDriverService$Builder.findDefaultExecutable(ChromeDriverService.java:156)在org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:346)在org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:91)在org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:123)在testngex.Login.main(Login.java:17) ...删除了24个堆栈帧

EN

回答 2

Stack Overflow用户

发布于 2018-08-07 22:31:51

使用Maven Surefire插件。并使用pattern让它识别测试类,如下所示...

代码语言:javascript
运行
复制
mvn -Dtest=test* test
票数 1
EN

Stack Overflow用户

发布于 2018-08-08 21:00:14

此错误消息...

代码语言:javascript
运行
复制
java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkState(ZLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V

...implies JVM无法找到启动新会话所需的WebDriver变体,即ChromeDriver

您的主要问题是,您没有提到ChromeDriverJVM的位置。因此出现了错误。

解决方案

在代码开头添加System.setProperty()行:

代码语言:javascript
运行
复制
System.setProperty("webdriver.chrome.driver", "C:\\path\\to\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51729242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档