2010-10-07 2 views
5

Je souhaite disposer d'une configuration dans laquelle mon serveur de génération exécute un test NUnit qui s'ouvre et entraîne un navigateur sur une machine distante. Quel serait le meilleur moyen d'accomplir cela?Exécuter des tests du sélénium 2 par rapport au navigateur distant

C'était facile à faire dans Selenium 1, parce que le serveur proxy Java était assis entre vos tests et le navigateur. Dans Selenium 2, vos tests communiquent directement avec le navigateur (au moins dans IE et Firefox).

Existe-t-il un bon moyen de le faire? Peut-être avec un service WCF ou quelque chose?

Répondre

6

Vous devez obtenir le serveur Selenium autonome (actuel est selenium-server-standalone-2.0a6.jar) de http://code.google.com/p/selenium/. Ensuite, commencer est avec la ligne de commande sur la machine distante (vous avez besoin de Java il y a installé):

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

Aussi il y a un .NET implementation of the server, mais sa version est derrière Java un

Ensuite, vous devez utiliser la RemoteWebDriver:

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

Et puis utilisez le pilote comme vous le faites dans vos tests "local"

Plus d'info:

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# exemple de le faire est listé dans le lien ci-dessous. Les fichiers du pilote pour firefox sont inclus dans le fichier du serveur sélénium qui doit être exécuté sur la machine distante. Mais conducteur de chrome et emplacement du pilote d'Internet Explorer doit être transmis au serveur avec des options -Dwebdriver.ie.driver et -DWebdriver.chrome.driver sur le démarrage

Pour plus de détails, voir ce lien How to invoke/run different type of web driver browser using remote webdriver in C#

Le code de base est illustré ci-dessous.

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