残念ながらSelenium WebDriver 2.53.0はFirefox 47.0と互換性がありません。Firefoxブラウザ(FirefoxDriver
)を処理するWebDriverコンポーネントは廃止されます。バージョン3.0以降、Selenium WebDriverは、geckodriver
Firefoxブラウザーを管理するためにバイナリーを必要とします。詳細はこちらとこちら。
したがって、セレンwebdriverを2.53.0ブラウザとしてFirefoxの47.0を使用するためには、あなたがダウンロードする必要がFirefoxのドライバ(と呼ばれるバイナリファイルでgeckodriver
、バージョン0.8.0のように、そして以前wires
)と変数への絶対パスをエクスポートwebdriver.gecko.driver
などJavaコードのシステムプロパティ:
System.setProperty("webdriver.gecko.driver", "/path/to/geckodriver");
幸いにも、ライブラリWebDriverManagerはこの作業を実行できます。つまり、マシン(Linux、Mac、またはWindows)に適切なMarionetteバイナリをダウンロードし、適切なシステムプロパティの値をエクスポートします。このライブラリを使用するには、この依存関係をプロジェクトに含める必要があります。
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>4.1.0</version>
</dependency>
... WebDriverを使用する前に、プログラムで次の行を実行します。
WebDriverManager.firefoxdriver().setup();
WebDriverを使用したJUnit 4テストケースの完全な実行例は次のとおりです。
public class FirefoxTest {
protected WebDriver driver;
@BeforeClass
public static void setupClass() {
WebDriverManager.firefoxdriver().setup();
}
@Before
public void setupTest() {
driver = new FirefoxDriver();
}
@After
public void teardown() {
if (driver != null) {
driver.quit();
}
}
@Test
public void test() {
// Your test code here
}
}
Marionetteが将来の唯一のオプションになることを考慮に入れてください(WebDriver 3以降およびFirefox 48以降の場合)。ただし、現在(執筆時のバージョン0.9.0)はあまり安定していません。詳細については、マリオネットのロードマップをご覧ください。
更新
Selenium WebDriver 2.53.1が2016年6月30日にリリースされました。ブラウザとしてFirefoxDriver
Firefox 47.0.1を使用して再び動作しています。