ビルド サーバーが、リモート マシンでブラウザーを開いて駆動する NUnit テストを実行する構成が必要です。これを達成するための最良の方法は何ですか?
Selenium 1 では簡単に実行できました。Java プロキシ サーバーがテストとブラウザーの間に位置していたからです。Selenium 2 では、テストはブラウザーと直接通信します (少なくとも IE と Firefox では)。
これを行う良い方法はありますか?おそらくWCFサービスか何かで?
ビルド サーバーが、リモート マシンでブラウザーを開いて駆動する NUnit テストを実行する構成が必要です。これを達成するための最良の方法は何ですか?
Selenium 1 では簡単に実行できました。Java プロキシ サーバーがテストとブラウザーの間に位置していたからです。Selenium 2 では、テストはブラウザーと直接通信します (少なくとも IE と Firefox では)。
これを行う良い方法はありますか?おそらくWCFサービスか何かで?
スタンドアロン Selenium サーバー (現在は selenium-server-standalone-2.0a6.jar) をhttp://code.google.com/p/selenium/から取得する必要があります。次に、リモート マシンのコマンド ラインから始めます (そこに Java がインストールされている必要があります)。
java -jar selenium-server-standalone-2.0a6.jar
サーバーの.NET 実装もありますが、そのバージョンは Java のものよりも遅れています
次に、次を使用する必要がありますRemoteWebDriver
。
IWebDriver driver = new RemoteWebDriver(new Uri("http://127.0.0.1:4444/wd/hub"),DesiredCapabilities.InternetExplorer());
そして、「ローカル」テストと同じようにドライバーを使用します
より詳しい情報:
http://code.google.com/p/selenium/wiki/RemoteWebDriver
http://code.google.com/p/selenium/wiki/RemoteWebDriverServer
これを行う C# の例は、以下のリンクにリストされています。Firefox 用のドライバー ファイルには、リモート マシンで実行するために必要な Selenium サーバー jar が組み込まれています。ただし、起動時にオプション -Dwebdriver.ie.driver および -DWebdriver.chrome.driver を使用して、chrome ドライバーと Internet Explorer ドライバーの場所をサーバーに渡す必要があります。
詳細については、このリンクを参照してください 。 C# でリモート Web ドライバーを使用して、異なるタイプの Web ドライバー ブラウザーを呼び出す/実行する方法
基本的なコードを以下に示します
[Test]
public void Test_OpeningHomePageUsingIE()
{
// Step b - Initiating webdriver
IWebDriver driver = new RemoteWebDriver(new Uri("http://127.0.0.1:4444/wd/hub"), DesiredCapabilities.InternetExplorer());
//Step c : Making driver to navigate
driver.Navigate().GoToUrl("http://docs.seleniumhq.org/");
//Step d
IWebElement myLink = driver.FindElement(By.LinkText("Download"));
myLink.Click();
//Step e
driver.Quit();
}