我有一个TestNG测试,当在Eclipse中作为TestNG套件运行时,它可以正常工作,但是当通过命令行运行时,它会失败。我看到了无法启动浏览器的问题,但类路径设置工作正常,因为我刚刚打印了helloworl,而没有webdriver code.Can。有人能帮我看一下这里缺少的内容吗?
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文件
<?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 -->错误测试
testngex.Login#maincom.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个堆栈帧
发布于 2018-08-07 22:31:51
使用Maven Surefire插件。并使用pattern让它识别测试类,如下所示...
mvn -Dtest=test* test发布于 2018-08-08 21:00:14
此错误消息...
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。
您的主要问题是,您没有提到ChromeDriver到JVM的位置。因此出现了错误。
解决方案
在代码开头添加System.setProperty()行:
System.setProperty("webdriver.chrome.driver", "C:\\path\\to\\chromedriver.exe");
WebDriver driver = new ChromeDriver();https://stackoverflow.com/questions/51729242
复制相似问题