我需要在Maven中使用ChromeDriver创建简单的自动测试。从pom.xml中如何使用Maven在Chrome中运行Selenium WebDriver测试用例?
摘录:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.53.1</version>
</dependency>
测试用例:
@BeforeTest
public void StartBrowser_NavURL() {
driver = new ChromeDriver();
driver.manage().window().maximize();
}
@AfterTest
public void CloseBrowser() {
driver.quit();
}
@Test
public void testToCompareDoubles() {
driver.get("http://www.google.com");
}
并运行测试执行命令后
mvn -test
我收到以下异常:
JA va.lang.IllegalStateException:驱动程序可执行文件的路径必须由webdriver.chrome.driver系统属性设置;有关更多信息,请参阅https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver。最新版本可从http://chromedriver.storage.googleapis.com/index.html 下载,网址为com.google.common.base.Preconditions.checkState(Preconditions.java:199) ,位于org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:109) 在org.openqa.selenium.chrome.ChromeDriverService.access $ 000(ChromeDriverService.java:32) 在org.openqa.selenium.chrome.ChromeDriverService $ Builder.findDefaultExecutable(ChromeDriverService.java:137) 在org.openqa.selenium .remote.service.DriverService $ Builder.build(DriverService.java:296) at org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:88) at org.openqa.selenium.chrome.ChromeDriver。( ChromeDriver.java:116) at com.testTask.GoogleTest.StartBrowser_NavURL (GoogleTest.java:26) at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:77) at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:110 ) at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:106) at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189) at org.apache .maven.surefire.booter.ProviderFactory $ ProviderProxy.invoke(ProviderFactory.java:165) at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85) at org.apache.maven.surefire .booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.ja VA:75) ...删除23帧堆栈
我读过讨论入店通过以下链接: How to run Selenium WebDriver test cases in Chrome?
但我不能下载我的服务器上的可执行文件。所以,这不适合我。 但是Maven会在服务器上下载“selenium-chrome-driver-2.53.1.jar”(这对我来说可以)。
有没有办法使用dowloaded .jar文件而不是可执行文件?
P.S.对于这个项目,我使用IntelliJ Idea Community Edition,我不是专家。
一次:我没有权限下载的可执行文件。 – Eugene
这是什么意思?你需要有可执行的chrome驱动程序来在chrome上运行测试。 –
您的建议有效:我的测试在下载“chromedriver.exe”后执行。但是所有这些东西都应该使用单一的Maven命令(例如:mvn -test)运行。我不知道,Maven可以从互联网上下载文件吗?所以,我正在寻找一个解决方案,这将最大限度地减少下载的外部文件的数量。否则,我应该去利益相关者重新谈判。 – Eugene