@blog.justoneplanet.info

日々勉強

androidでAndroidWebDriverを使ってみる

元ネタはTim BrayのIntroducing Android WebDriverという記事。

■準備

テストプロジェクトで右クリックし「propaties> Java Build Path > Libraries > Add External JARs」で以下のjarをインポートする。

  • android_webdriver_library-srcs.jar
  • android_webdriver_library.jar
  • guava-10.0.1.jar

■コード

Tim様の記事ではgoogle.comが使用されているが以下のような理由によってテストにパスしない。

  • ロケールが違うので日本語表示される
  • 結果がリッチすぎて上手くdomを抽出できない

テストコード内でgoogle.comのリンクをクリックするようにできると思うが、html構造を把握するのが大変なので以下のようなコードでmozillaのサイトでテストすることにした。

package bootcamp2011.android.test;

import java.util.List;

import bootcamp2011.android.Bootcamp2011Activity;
import android.test.ActivityInstrumentationTestCase2;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.android.AndroidWebDriver;;

public class Bootcamp2011ActivityTest extends
        ActivityInstrumentationTestCase2<Bootcamp2011Activity> {

    private AndroidWebDriver driver;

    public Bootcamp2011ActivityTest() {
        super("bootcamp2011.android.bootcamp2011activity", Bootcamp2011Activity.class);
    }
    
    @Override
    protected void setUp() throws Exception {
      driver = new AndroidWebDriver(getActivity());
    }
    
    @Override
    protected void tearDown() {
       driver.quit();
    }
    
    public void testGoogleShouldWork() {
        // mozillaのサイトを訪問
        driver.get("https://developer.mozilla.org/ja/JavaScript");

        // 検索boxを抽出して文字入力し送信
        WebElement searchBox = driver.findElement(By.id("q"));
        searchBox.sendKeys("querySelector");
        searchBox.submit();

        // 検索結果にquerySelectorという文字列が含まれているかテスト(仮)
        WebElement resultSection = driver.findElement(By.id("search-results"));
        List<WebElement> searchResults = resultSection.findElements(By.tagName("table"));
        WebElement result = searchResults.get(0);
        assertTrue(result.getText().contains("querySelector"));
    }
}

By.cssSelector()というメソッドがあるのだが上手く働かない…一応、動作するサンプルが「android-sdk-mac_x86/extras/google/webdriver/TestAnAndroidWebApp/src/simple/app/test/SimpleGoogleTest.java」にある。

コメントはまだありません»

No comments yet.

RSS feed for comments on this post.TrackBack URL

Leave a comment