2016-10-01 4 views
0

MavenでChromeDriverを使って簡単な自動テストを作成する必要があります。MavenでChromeでSelenium WebDriverテストケースを実行するにはどうすればよいですか?

の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 

ジャ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でorg.openqa.selenium.chrome.ChromeDriverService $ Builder.findDefaultExecutable(ChromeDriverService.java:137)でorg.openqa.selenium.chrome.ChromeDriverService.access $ 000(ChromeDriverService.java:32) で .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 org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)で(ProviderFactory.java:165) 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を使用していますが、私はその専門家ではありません

答えて

1

あなたには例外があります。ドライバを初期化する前に、実行可能なクロムドライバのパスを設定するだけです。

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

以下のリンクからクロムドライバの実行ファイルをダウンロードして、目的の場所に置くことができます:編集

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

あなたはクロームドライバをダウンロードしたくない場合手動でこのような依存関係を追加します。

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

これはドライバの最新バージョンをダウンロードして、コマンドを使用して、適切なJavaのシステム変数を設定します:

ChromeDriverManager.getInstance().setup(); 
+0

もう一度:私は実行可能ファイルをダウンロードするには権限がありません。 – Eugene

+0

それはどういう意味ですか?クロムでテストを実行するには、実行可能なクロムドライバが必要です。 –

+0

あなたのアドバイスは動作します:私のテストは "chromedriver.exe"をダウンロードした後に実行されます。しかし、これらすべてのものは、単一のMavenコマンド(例えば、mvn-test)で実行されるはずです。私はMavenがインターネットからファイルをダウンロードできるかどうかはわかりません。だから、私はダウンロードされた外部ファイルの量を最小限に抑える解決策を探しています。さもなければ、私は再交渉するために利害関係者に行くべきです。 – Eugene

関連する問題