LoginSignup
2
1

More than 5 years have passed since last update.

SelenideをFirefox48以降で動かす(GeckoDriverを使う)

Last updated at Posted at 2016-12-02

始めに

Firefox48では、それまでのFirefoxDriverからMarionette Driverへ、対応するDriver実装が変更となりました。このMarionetteDriverを使ってSelenideでテストを動かす方法を説明します。

前提条件

以下の環境で検証しました。

環境 バージョン
OS Windows 10 Home Premium (64bit)
ブラウザ Firefox 50.0.1
Marionette (GeckoDriver) 0.10.0
Selenide 3.10 および 4.0

手順

Marionette (GeckoDrvier)ダウンロード&インストール

Marionette(GeckoDriverに改名したようです。以下GeckoDriver)を、Githubのプロジェクトページからダウンロードします。実行環境に合わせたバイナリを選んでください。

ダウンロードしたのち、アーカイブを展開しでてきたバイナリを任意の場所に配置します。UNIX系OSの場合は実行権限を付与します。

プログラムの変更

Selenideの初期化処理で、以下のような記述を追加します。

        Configuration.browser = WebDriverRunner.MARIONETTE 
        System.setProperty("webdriver.gecko.driver","C:/Users/hoge/bin/geckodriver.exe");

最初の一行目が、使用するDriver種類をMarionette(GeckoDriver)にすることを、二行目がGeckoDriverのバイナリの位置を指定してます。

なお、Selenide 3.10だと WebDriverRunner.MARIONETTE が定義されていないかもしれませんが、その場合は

        Configuration.browser = "marionette";

とすることで動きます。

実際に組み込んだコードは以下のようになります。
あまり例はよくなく、本当は @Before などでの初期処理に書いたほうがよいですね。

public class AppTest {


    @org.junit.Test
    public void Test1(){
        Configuration.browser = "marionette";
        System.setProperty("webdriver.gecko.driver","C:/Users/shima/bin/geckodriver.exe");
        GoogleHomePage page = open("https://www.google.co.jp/?gfe_rd=cr&ei=VWfRV66pOMaS9QXTo7vQBw&gws_rd=ssl", GoogleHomePage.class );
        // GoogleHomePage page = page(GoogleHomePage.class );
        page.検索窓().waitUntil(Condition.visible, 1000);
    }
}

終わりに

この対応で「Selenideがうまく動かないからFirefox47で留め置き」がなくなります。
普段Firefoxを使っていて手元でSelenideを使う人も、これで心置きなくバージョンアップができますね。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1