テスターですが何か?

ホビープログラマ略してHPです

Archive for the ‘Selenium’ Category

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

leave a comment »

今回は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

広告

Written by david9142

2012年12月28日 at 11:41 PM

カテゴリー: Selenium

Tagged with ,

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

leave a comment »

この頃、ブラウザを自動操作したい需要が自分の中で高まりつつあります。ただ、スマートフォン向けのコンテンツなのでIEのようにUser-Agentを変更できないブラウザではためなんですよね。普段はChromeの[F12] – 右下の設定アイコンからブラウザのUser-Agent文字列を変更してテストをしています。

clip_image002

ブラウザを自動操作するといえば、自分の中ではWatin(http://watin.org/) なのですが、2年弱(最新Ver2.1のリリースが2011年4月)開発が止まっていたり、Chromeは正式に対応していなかったりと、ちょっと利用するにはためらう状況です。しかも、「Watin」で検索すると自分のブログが上位にヒットするという、悲しいほど日本語の情報がありません。

じゃ、どうするかということでいろいろと探した結果、Selenium Web Driverを使用することにしました。Selenium自体は、以前からWebアプリケーションの自動テストツールとして有名でしたが、Version2からは複数のプログラム言語、複数のブラウザに対応しています。

詳しくは、以下の@ITの記事が参考になると思います。

iPhone/Android含むブラウザ自動テストの最終兵器Selenium WebDriverとは (1/2)

基本情報をまとめると、以下の通りです。

  • プログラム言語:Java, C#, Ruby, Python
  • ブラウザ: IE, FireFox (ドライバのダウンロードが必要Chrome, Opera) (SDKのインストールが必要: Android, iOS)

次回は、Chrome Driverを使用してUser-AgentをiPhone/Androidに設定してスマートフォン向けコンテンツを自動操作する方法を紹介しようと思います。

Written by david9142

2012年12月23日 at 7:28 PM

カテゴリー: Selenium

Tagged with