Je voudrais exécuter des tests automatisés en utilisant chrome webdriver de Selenium2 sur un serveur linux.
J'ai déjà configuré Firefox pour qu'il s'exécute sur le serveur en utilisant Xvfb (Voir http://www.semicomplete.com/blog/geekery/xvfb-firefox.html ) et je voudrais faire quelque chose similaire avec du chrome. Est-ce possible?
Je n'ai pas réussi à trouver un moyen de le faire par programme pour ChromeDriver comme vous le pouvez avec FirefoxBinary.
J'ai soumis une demande d'amélioration qui a un correctif attaché pour permettre cela. Vous pouvez le voir ici: http://code.google.com/p/Selenium/issues/detail?id=267
Edit: Vous pouvez voir ci-dessous la réponse de Stephen sur la façon d'utiliser cela maintenant que le changement a été fusionné .: https://stackoverflow.com/a/16619608/998442
Je faisais face au même défi de configurer une boîte Linux avec Selenium + chromedriver, et voici mes notes:
Pré-requis:
Installez JRE pour exécuter le pot Selenium
Installer le serveur Selenium
récupérez le fichier jar depuis https://code.google.com/p/Selenium/downloads/list )
Installez xvfb (vous semblez avoir déjà réalisé cette partie)
Installez Google-Chrome pour votre distribution Linux
Téléchargez le pilote chrome Vous pouvez le récupérer ici: https://sites.google.com/a/chromium.org/chromedriver/downloads
Installez d'autres dépendances Selenium dont vous pourriez avoir besoin (mais ce qui précède est le minimum pour faire fonctionner chromedriver)
Courir:
Xvfb :1 -screen 5 1024x768x8 &
export DISPLAY=:1.5
Java -jar Selenium-server-standalone-2.30.0.jar -Dwebdriver.chrome.bin=/path/to/google-chrome -Dwebdriver.chrome.driver=/path/to/chromedriver
19 mars 2013 10:07:27 org.openqa.grid.Selenium.GridLauncher main INFO: Lancement d'un serveur autonome
Définition de la propriété système webdriver.chrome.bin sur {location de google-chrome}
Définition de la propriété système webdriver.chrome.driver sur {emplacement de chromedriver}
10: 07: 34.258 INFO - Les instances RemoteWebDriver doivent se connecter à:
http://127.0.0.1:4444/wd/hub
10: 07: 34.259 INFO - Version Jetty/5.1.x 10: 07: 34.259 INFO - Démarré HttpContext [/ Selenium-server/driver,/Selenium-server/driver] ...
Référence: http://www.yann.com/en/use-xvfb-Selenium-and-chrome-to-drive-a-web-browser-in-php-23/08/2012.html
À votre santé!
Selon SetEnvironmentProperty à ChromeDriver par programme vous pouvez faire ce qui suit:
service = new ChromeDriverService.Builder()
.usingChromeDriverExecutable(new File("/path/to/chromedriver"))
.usingAnyFreePort()
.withEnvironment(ImmutableMap.of("DISPLAY",":20"))
.build();
Voici la documentation pour withEnvironment