Nous envisageons de mettre à niveau notre serveur de production d'Ubuntu- desktop 10.04 vers Ubuntu server 12.04.
Nous avons divers services fonctionnant sur notre système d'exploitation de bureau actuel, comme Selenium Web Driver. Ma question est la suivante: le pilote Web Selenium peut-il être exécuté à partir d'un système basé sur cli?
Ma pensée immédiate est que ce n'est pas possible, car il repose sur Firefox, mais j'aimerais que quelqu'un me prouve le contraire!
Réponses:
Ce que vous recherchez est un navigateur sans tête.
Oui, il est possible d'exécuter Selenium sur Firefox sans tête. Voici un article que vous pouvez suivre.
Voici les étapes récapitulatives pour configurer Xvfb
la source
Xvfb
, pas pour installer et configurer Selenium (qui nécessite d'avoirgeckodriver
sur le chemin).subprocess.Popen('Xvfb...')
ouos.system('Xvfb...')
, mais assurez-vous de le faire avant d'importer le pilote Web.Chrome dispose désormais d'un mode sans tête:
la source
Oui. Vous pouvez utiliser à la
HTMLUnitDriver
place pourFirefoxDriver
lors du démarrage de Webdriver. Il s'agit d'une configuration de navigateur sans tête. Les détails peuvent être trouvés ici .la source
Si vous voulez une prise en charge du navigateur sans tête, vous pouvez adopter une autre approche.
https://github.com/detro/ghostdriver
Il a été annoncé lors de la conférence Selenium et est toujours en développement. Il utilise PhantomJS comme navigateur et est bien meilleur que HTMLUnitDriver, il n'y a pas encore de captures d'écran, mais comme il est toujours en développement actif.
la source
Une option est à utiliser
pyvirtualdisplay
comme ceci:Une version plus courte est:
Il s'agit généralement d'un encapsulation de python
xvfb
, et plus pratique en quelque sorte.À propos, bien qu'il s'agisse d'
PhantomJS
un navigateur sans tête et qu'aucune fenêtre ne soit ouverte si vous l'utilisez, il semble qu'il aitPhantomJS
encore besoin d' un environnement d'interface graphique pour fonctionner.J'ai le code d'erreur -6 lorsque j'utilise
PhantomJS()
au lieu deFirefox()
mode sans tête (console connectée au mastic). Cependant, tout va bien dans l'environnement de bureau.la source
MISE À JOUR: Vous n'avez plus besoin de XVFB pour exécuter Firefox sans tête. Firefox v55 + sous Linux et Firefox v56 + sous Windows / Mac prend désormais en charge l'exécution sans tête.
J'ai ajouté une documentation comment utiliser ici:
https://developer.mozilla.org/en-US/Firefox/Headless_mode#Selenium_in_Java
la source
Une autre option est GhostDriver qui est maintenant officiellement pris en charge par WebDriver: gain de performances réelles Ghostdriver
la source
Sachez que le client Web HtmlUnitDriver est mono-thread et que Ghostdriver ne représente que 40% des fonctionnalités pour être un WebDriver.
Néanmoins, Ghostdriver fonctionne correctement pour les tests et j'ai des problèmes pour le connecter au hub WebDriver.
la source
Oui, vous pouvez exécuter des scripts de test sans navigateur, mais vous devez les exécuter en mode sans tête.
la source
peut-être que vous devez définir la dimension de votre fenêtre. juste comme:
si cela ne fonctionne pas non plus, essayez d'augmenter la taille de la fenêtre.
la source
Installez et exécutez Firefox en conteneur:
Connectez-vous en utilisant
webdriver.Remote
:la source