開発者ブログ
HTML5資料室 » Selenium WebDriverのインストール~動かしてみる

Selenium WebDriverのインストール~動かしてみる

Last modified by hashimot on 2018/08/02, 17:32

Pitaliumを使用した環境構築の場合はこちら

Selenium WebDriverとは

Googleが開発したWebアプリケーション用テストフレームワークです。2011年にSeleniumプロジェクトに統合されました。
2018年8月現在の最新バージョンは、3.13.0です。

テスト環境

  • 開発環境
    • Windows7 64bit SP1
    • Eclipse Pleiades All in One 4.6.2
    • jdk 8u172
  • 対象ブラウザ
    • Chrome 68.0.3440.84
  • ライブラリ等
    • selenium-java 3.13.0
    • ChromeDriver 2.41
    • JUnit 4.12
    • hamcrest-core 1.3

手順

PCブラウザ(Google Chrome)でテストを行う

  1. Seleniumのサイトから最新のライブラリをダウンロードします。今回は「selenium-java-3.13.0.zip」をダウンロードします。
  2. Eclipseを起動後、新規Javaプロジェクトを作成します。今回はプロジェクト名を「WebDriverTest」とします。
  3. WebDriverプロジェクト直下に「lib」フォルダを作成します。
  4. ダウンロードしたzipファイルを解凍すると以下のファイルとフォルダがあるので、libsフォルダ内のjar全てと、client-combined-3.13.0.jarをWebDriverプロジェクトのlibフォルダにコピーします。
    • libs
    • CHANGELOG
    • client-combined-3.13.0.jar
    • client-combined-3.13.0-sources.jar
    • LICENSE
    • NOTICE
  5. libフォルダにコピーしたjarを全て、クラスパスに追加します。
    • WebDriverプロジェクトを右クリックし、[プロパティ]から[Javaのビルド・パス]を選択します。
    • ライブラリータブから「jar追加(J)」ボタンを押します。
    • フォルダーツリーからWebDriver/lib以下のjarを選択し「OK」ボタンを押します。
    • プロパティ画面に戻るので、「OK」ボタンを押してプロパティを閉じます。
  6. テストクラスの格納するパッケージを作成します。
    • srcパッケージフォルダに任意の名称のパッケージを作成します。今回はパッケージ名を「com.htmlhifive.sample」とします。
  7. Google Chromeがインストールされていない場合は、ここからダウンロードして下さい。
  8. Google ChromeをWebDriverから起動するにはchromedriver.exeが必要です。ここから、ダウンロードして下さい。
    今回使用しているOSはWindows7の64ビットですが、64bit専用のchromedriverが無いため、32ビット版のChromeDriver 2.41「chromedriver_win32.zip」をダウンロードします。
    ダウンロードしたchromedriver_win32.zipを解凍するとchromedriver.exeが作成されるので、WebDriverTestプロジェクト直下に「driver」フォルダを新規作成し、ここにchromedriver.exeを置きます。

    この時点で、プロジェクトは以下のような構成になっています。

    eclipse-project-setting.png
     
  9. 単体テストを行うためのツール「JUnit」をダウンロードします。JUnitからJUnit4をダウンロードして下さい。
    • Download and install からjunit.jarhamcrest-core.jarの最新版のjarをダウンロードします。
    • ダウンロードしたjarをlibフォルダにコピーして、クラスパスに追加します。
  10. JUnitを使用してテストケースを作成します。
    以下のテストシナリオで実装を行います。
    • http://www.htmlhifive.com/conts/web/view/Main/WebHome をGoogle Chromeで開く。
    •  「コンテンツ」の一覧にある「チュートリアル」のリンクをクリックする。
    •  「チュートリアル」のページが表示されることを確認する。
  11. com.htmlhifive.sampleパッケージに「HifiveSiteTest.java」を作成しテストコードを実装します。コードは以下のとおりです。

    package com.htmlhifive.sample;

    import static org.junit.Assert.assertEquals;

    import org.junit.After;
    import org.junit.Before;
    import org.junit.BeforeClass;
    import org.junit.Test;
    import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.chrome.ChromeDriver;
    import org.openqa.selenium.interactions.Actions;
    import org.openqa.selenium.support.ui.ExpectedCondition;
    import org.openqa.selenium.support.ui.ExpectedConditions;
    import org.openqa.selenium.support.ui.WebDriverWait;

    public class HifiveSiteTest {
    private WebDriver driver;

    @BeforeClass
    public static void Setup() {
    System.setProperty("webdriver.chrome.driver", "./driver/chromedriver.exe");
    }

    @Before
    public void testBefore() {
    driver = new ChromeDriver();
    }

    @After
    public void testAfter() {
         driver.quit();
    }

    @Test
    public void test1() {
    // ページを開く
    driver.get("http://www.htmlhifive.com/conts/web/view/Main/WebHome");

    // 「ガイド」タブの上にマウスオーバーする
    WebElement elGuide = driver.findElement(By.cssSelector(".guide>.tab>span"));
    Actions action = new Actions(driver);
    action.moveToElement(elGuide).perform();

    // バルーンが表示されるまで待機する
    WebElement elBalloon = driver.findElement(By.cssSelector(".guide>.balloon"));
    WebDriverWait wait = new WebDriverWait(driver, 10);
         wait.until(new ExpectedCondition<Boolean>() {
         public Boolean apply(WebDriver driver) {
         return elBalloon.isDisplayed();
         }
         });

         // 表示されたバルーンの「チュートリアル」をクリックする
    WebElement elTutorial = driver.findElement(By.className("tutorial"));
    if (driver.getCapabilities().getBrowserName().toLowerCase().equals("internet explorer")) {
    // IEでのテスト時はマウスカーソルがブラウザ上にないとバルーンが表示されない
    // IEではsendKeysでEnterしないとチュートリアルのページが表示されない
    elTutorial.sendKeys(Keys.ENTER);
    } else {
    elTutorial.click();
    }

    // チュートリアルのページが表示されていることを確認する
    wait = new WebDriverWait(driver, 10);
         WebElement elTitle =  wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("document-title")));
         assertEquals("チュートリアルページが表示されていること。", elTitle.getText(), "チュートリアル");
    }
    }
  12. テストケースを実行します。
    HifiveSiteTest.java上で右クリックを押し、メニューから「実行」->「JUnitテスト」から実行します。
    テストが実行され以下のようになっていれば成功です。

junit-test-result.png

Android端末でテストを行う

※ 古い記述になっています。
新しいチュートリアルをご覧ください。Appiumを使ったAndroid・iOSでのテスト

※ PCブラウザのテスト実行手順で作成した、WebDriverTestプロジェクトを使用します。

  1. Seleniumのサイトから、android-serverのapkファイルを取得します。今回は最新版のandroid-server-2.32.0.apkを使用します。
  2. Androidのサイトから、Android SDKをダウンロードし、Cドライブ直下にインストールします。(パスはC:\android-sdkとなっていること)
  3. Android SDKをインストール後、Android SDKで使用する環境変数を設定します。
    • 変数名: ANDROID_SDK  値: C:\android-sdk
  4. 環境変数PATHに以下の値を追加します。
    • %ANDROID_HOME%\platform-tools;
  5. com.htmlhifive.sampleパッケージに「HifiveSiteTestAndroid.java」を作成し、テストコードを実装します。シナリオはHifiveSiteTest.javaと同じです。
    コードは以下のとおりです。

    package com.htmlhifive.sample;

    import static org.junit.Assert.assertEquals;

    import org.junit.Test;
    import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.android.AndroidDriver;
    import org.openqa.selenium.support.ui.ExpectedConditions;
    import org.openqa.selenium.support.ui.WebDriverWait;

    public class HifiveSiteTestAndroid {
    @Test
    public void test1() {
    WebDriver driver = new AndroidDriver();
    driver.get("http://www.htmlhifive.com/conts/web/view/Main/WebHome");
    WebElement elTutorial = driver.findElement(By.linkText("チュートリアル"));
    elTutorial.click();

    WebDriverWait wait = new WebDriverWait(driver, 10);
         WebElement elTitle =  wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("document-title")));
         assertEquals("チュートリアルページが表示されていること。", elTitle.getText(), "tutorial");
         driver.quit();
    }
    }

     
  6. Micro USBケーブルでPCと実機を接続後、コマンドプロンプトで以下のコマンドを実行し、android-server-2.32.0.apkをテスト端末にインストールします。
    • adb install android-server2.32.0.apk
      ※ もし、OSがAndroid端末を認識しない場合は、テスト端末の製造元サイトからドライバをダウンロードして、PCにインストールして下さい。
  7. 端末でWebDriverのアプリケーションを起動します。
  8. コマンドプロンプトで以下のコマンドを実行し、端末からテストページにアクセスできるようにします。
    • adb forward tcp:8080 tcp:8080
  9. テストケースを実行します。
    HifiveSiteTestAndroid.java上で右クリックを押し、メニューから「実行」->「JUnitテスト」から実行します。
    テストが実行され以下のようになっていれば成功です。

    junit-test-result2.png

iOS端末でテストを行う

Appiumを使ったAndroid・iOSでのテスト


Copyright (C) 2012-2017 NS Solutions Corporation, All Rights Reserved.