簡體   English   中英

如何在帶有Maven的Chrome中運行Selenium WebDriver測試用例?

[英]How to run Selenium WebDriver test cases in Chrome with Maven?

我需要使用帶有Maven的ChromeDriver創建簡單的自動測試。

pom.xml的摘錄:

<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

我收到以下異常:

java.lang.IllegalStateException:必須通過webdriver.chrome.driver系統屬性設置驅動程序可執行文件的路徑; 有關更多信息,請參見https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver 可以從org.openqa.selenium.remote的com.google.common.base.Preconditions.checkState(Preconditions.java:199)上的http://chromedriver.storage.googleapis.com/index.html下載最新版本。位於org.openqa.selenium.chrome.ChromeDriverService.access $ 000(ChromeDriverService.java:32)處的service.DriverService.findExecutable(DriverService.java:109)位於org.openqa.selenium.chrome.ChromeDriverService $ Builder.findDefaultExecutable(ChromeDriverService.java) :137)(位於org.openqa.selenium.remote.service.DriverService $ Builder.build(DriverService.java:296)),位於org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:88)。 selenium.chrome.ChromeDriver。(ChromeDriver.java:116)位於com.testTask.GoogleTest.StartBrowser_NavURL(GoogleTest.java:26)位於org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:77) org.apache.maven.surefire.te上的org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:110) 位於org.apache.maven.surefire.bootfire.booter.ProviderFactory $ ProviderProxy.invoke( org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:165)(位於org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)) .apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)...刪除了23個堆棧幀

我已通過以下鏈接閱讀了有關討論的內容: 如何在Chrome中運行Selenium WebDriver測試用例?

但是我無法在服務器上下載可執行文件。 因此,這不是我的選擇。 但是Maven在服務器上下載了“ selenium-chrome-driver-2.53.1.jar”(對我來說這沒關系)。

有沒有辦法使用dowloaded .jar文件而不是可執行文件?

PS對於此項目,我使用IntelliJ Idea社區版,但我不是專家

您對拋出的異常有一個答案。 初始化驅動程序之前,只需將路徑設置為可執行chrome驅動程序。

System.setProperty("webdriver.chrome.driver", "path to your chrome driver executable")

您可以從下面的鏈接下載chrome驅動程序可執行文件,並將其放在所需的位置:

https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver

編輯:

如果您不想手動下載chrome驅動程序,請添加類似的依賴項。

<dependency>
   <groupId>io.github.bonigarcia</groupId>
   <artifactId>webdrivermanager</artifactId>
   <version>1.4.9</version>
</dependency>

這將下載最新版本的驅動程序,並使用以下命令設置適當的java系統變量:

ChromeDriverManager.getInstance().setup();

首先下載chromedriver.exe文件,並確保它與Selenium Webdriver版本兼容。

那么您必須使用System.Setproperty設置路徑,如下面的代碼所示

@BeforeTest
public void StartBrowser_NavURL() {
//setup the chromedriver path
System.setProperty("webdriver.chrome.driver", "Path to your chrome driver");
driver = new ChromeDriver();
driver.manage().window().maximize();
}

此后,您需要配置maven Surefire插件才能通過命令行運行maven項目。

鏈接: https : //maven.apache.org/surefire/maven-surefire-plugin/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM