Selenium Web Driverでスマホ用Webアプリのテスト(2)

今回はSelenium Web Driverを使用してChromeのUser-Agentをスマホ(iPhone, Android)に設定してWebブラウザを自動操作するC#のサンプルプログラムを紹介します。

1.ソリューションの作成

何はともあれ、まずはVisual Studioからソリューションを作成します。とりあえず「コンソールアプリケーション」として作成します。

2.Selenium Web Driverのインストール

Nugetから必要なモジュールをインストールします、[ツール] – [ライブラリパッケージマネージャー]-[パッケージマネージャーコンソール]から以下のコマンドを実行します。

Install-Package Selenium.WebDriver

3.Selenium Chrome Driverのインストール

Chrome DriverはNugetで公開されていないので、Webからダウンロードする必要があります。以下のURLで公開されているので、「selenium-dotnet-X.X.XX.zip」(2012/12/22時点で2.28.0)をダウンロードします。

http://code.google.com/p/selenium/downloads/list

4.chromedriver.exeをプロジェクトに配置

ダウンロードした「selenium-dotnet.X.X.XX.zip」を解凍すると「chromedriver.exe」が展開されるので、プロジェクトに含めます。そしてビルド時に出力ディレクトリにコピーされるようにします。

image

5.Chrome起動

Chromeを起動するプログラムを記述します。

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using OpenQA.Selenium;

using OpenQA.Selenium.Chrome;

 

namespace SeleniumChromeSample

{

    class Program

    {

        static void Main(string[] args)

        {

            IWebDriver browser = new ChromeDriver();

            browser.Url = "http://www.google.co.jp";

        }

    }

}

ほぼ説明は不要だと思います。ChromeDriverのインスタンスを生成して、Urlプロパティに表示したいUrlをセットするだけです。ChromeDriverのインスタンス生成時にブラウザが起動し、Urlプロパティを変更した時点で画面遷移が行われます。

5.Chromeをスマホとして起動

最後に、ChromeのUser-Agent文字列をAndroidに設定して起動します。例としてGALAXY NEXUSとして起動させます。

static void Main(string[] args)

{

    var option = new ChromeOptions();

    option.AddArgument("–user-agent=\"Mozilla/5.0 (Linux; U; Android 4.0.2; en-us; Galaxy Nexus Build/ICL53F) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30\"");

 

    IWebDriver browser = new ChromeDriver(option);

    browser.Url = http://www.google.co.jp;

}

ChromeOptionクラスのAddArgumentにUser-Agent文字列を設定し、ChromeDriverのコンストラクタにChromeOptionを設定します。iPhoneの場合は以下の文字列を設定しします。

Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3

このプログラムを実行すると、以下のようにモバイルモードでGoogleトップページが表示されます。

image

今回作成したサンプルコードは、こちらで公開しています。次回はテキストの入力、オブジェクトのクリックなどの操作を行っていこうと思います。

今回のブログエントリの作成にあたって、Selenium Web Driverの情報は以下のサイトを参考にさせていただきました。

http://www.slideshare.net/odashinsuke/selenium-webdriver-12311228#btnNext

http://www.storklab.com/seleniumhq.org/docs/03_webdriver.html

http://d.hatena.ne.jp/suzukij/20110828/1314549996

コメントを残す