SelenideをFirefox48以降で動かす(GeckoDriverを使う)
始めに
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を使う人も、これで心置きなくバージョンアップができますね。
Author And Source
この問題について(SelenideをFirefox48以降で動かす(GeckoDriverを使う)), 我々は、より多くの情報をここで見つけました https://qiita.com/shimashima35/items/c430283725afd84ed470著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .