2010-10-07 17 views
5

Ich hätte gerne eine Konfiguration, wo mein Build-Server einen NUnit-Test ausführt, der einen Browser auf einem Remote-Computer öffnet und steuert. Was wäre der beste Weg, dies zu erreichen?Führen Sie Selenium 2 Tests gegen Remote Browser aus

Es war einfach in Selenium 1 zu tun, weil der Java-Proxy-Server zwischen Ihren Tests und dem Browser saß. In Selenium 2 kommunizieren Ihre Tests direkt mit dem Browser (zumindest in IE und Firefox).

Gibt es einen guten Weg, dies zu tun? Möglicherweise mit einem WCF-Service oder etwas?

Antwort

6

Sie benötigen den Standalone Selenium Server (aktuell ist Selen-Server-Standalone-2.0a6.jar) von http://code.google.com/p/selenium/. Dann starten Sie mit der Kommandozeile auf dem entfernten Rechner (Sie benötigen Java installiert dort):

java -jar selenium-server-standalone-2.0a6.jar

Auch gibt es eine .NET implementation of the server, aber seine Version ist hinter dem Java ein

Dann sollten Sie die Verwendung RemoteWebDriver:

IWebDriver driver = new RemoteWebDriver(new Uri("http://127.0.0.1:4444/wd/hub"),DesiredCapabilities.InternetExplorer()); 

Und dann verwenden Sie den Treiber wie Sie in Ihrem "lokalen" tun testet

Weitere Informationen:

http://www.google.com/codesearch/p?hl=en#CJyJMZi8hYc/trunk/remote/client/src/csharp/webdriver-remote/RemoteWebDriver.cs

http://code.google.com/p/selenium/wiki/RemoteWebDriverServer

2

C# Beispiel dafür tun, ist in folgenden Link aufgeführt. Die Treiberdateien für Firefox sind mit Selenserver-Jars ausgestattet, die auf dem Remotecomputer ausgeführt werden müssen. Aber Chrom-Treiber und Internet Explorer Treiber Standort muss mit Optionen -Dwebdriver.ie.driver und -DWebdriver.chrome.driver auf der Start-up-

an den Server weitergegeben werden Weitere Informationen auf diesen Link verweisen How to invoke/run different type of web driver browser using remote webdriver in C#

Der Basiscode ist unter

 [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(); 
    } 
dargestellt