@ledsun blog

無味の味は佳境に入らざればすなわち知れず

WebアプリのテストだってC#で書きたい!Selenium2.0を使う。

昨日に引き続きSelenium2.0です。Web画面の操作からテストコードを作成してくれるSelenium IDEを調べようと思ったのですが、ちょっぴりショックなことがありました。Selenium2.0からC#でもテストコードが書けるようになったので、そちらの検証を先に書きます。ショックなことは最後に。

ダウンロードする

  1. 今は2.4.1が最新
  2. 好きな場所に解凍する

VisualStuidoで新規プロジェクトを作成する

  1. C#コンソールアプリケーションプロジェクト作成
  2. プロジェクト名はSeleniumSampleがおすすめ

プロジェクトの参照設定にダウンロードした全dllを追加

  1. プロジェクトを右クリックして「参照の追加(R)」
  2. 「参照」タブを選択してダウンロードしたdllを選択して「OK」をクリック

ソースを追加

昨日とほぼ一緒です。

using System;
using OpenQA.Selenium;
using OpenQA.Selenium.IE;

namespace SeleniumSample
{
    class Program
    {
        static void Main(string[] args)
        {
            IWebDriver driver = new InternetExplorerDriver();
            driver.Url= "http://google.com";
            IWebElement element = driver.FindElement(By.Name("q"));
            element.SendKeys("Cheese!");
            element.Submit();
            Console.WriteLine("Page title is: " + driver.Title);
        }
    }
}

デバッグで起動するとInternetExplorerが起動して、Googleで「Cheese!」を検索します。
C#だとGetメソッドとGetTitleメソッドが、それぞれUrlプロパティとTtileプロパティになってかっこいいです。

例外が出てIEが起動できない場合

InvalidOperationException 例外が出てIEが起動できないことがあります。Messageの内容は以下。

Unexpected error launching Internet Explorer. Protected Mode must be set to the same value (enabled or disabled) for all zones. (NoSuchDriver)

InternetExplorerの保護モードを有効にすると起動できます。すべてのゾーン(インターネット、ローカルイントラネット、信頼済みサイト、制限付きサイト)の保護モードを有効にする必要があります。