MavenでWebDriverの管理にはwebdriverextensionsが便利そう #geb #e2e

概要

Gebを使ったE2Eテストに挑戦しているのだけれど、WebDriverの管理にはwebdriverextensionsが便利そう。

Mavenプラグインが提供されているので、ドライバーを都度インストールしたり、バイナリファイルをプロジェクトで管理しなくて済むようになる。

github.com

pom.xmlにplugin追記

<build>
  <plugins>
    ...
    <plugin>
      <groupId>com.github.webdriverextensions</groupId>
      <artifactId>webdriverextensions-maven-plugin</artifactId>
      <version>3.1.1</version>
      <executions>
        <execution>
          <goals>
            <goal>install-drivers</goal>
          </goals>
        </execution>
      </executions>
      <configuration>
        <drivers>
          <driver>
              <name>chromedriver</name>
              <platform>mac</platform>
              <bit>64</bit>
              <version>2.33</version>
          </driver>
        </drivers>
      </configuration>
    </plugin>
    ...
  </plugins>
</build>

install-driversがデフォルトだとgenerate-sourcesフェーズで実行され、driversで設定したWebDriverが ${basedir}/drivers にダウンロードされる(場所は変更することも可能)。

上記の例だと、Mac用のChromeWebDriverがダウンロードされる。

  • drivers/chromedriver-mac-64bit
  • drivers/chromedriver-mac-64bit.version

*.version にはdriverの情報が載っている

{
  "name": "chromedriver",
  "platform": "mac",
  "bit": "64",
  "version": "2.27.0",
  "url": "http://chromedriver.storage.googleapis.com/2.27/chromedriver_mac64.zip"
}

補足

  • internetexplorerdriverやgeckodriverもある
  • download locationの変更も可能
    • 最新とかに追従しきれていないときは便利かも
  • drivers/.gitignore に入れておこう