J'ai une suite de tests de sélénium qui exécute de nombreux tests et à chaque nouveau test, il ouvre une fenêtre de navigateur au-dessus de toutes les autres fenêtres que j'ai ouvertes. Très choquant tout en travaillant dans un environnement local. Un moyen de dire au sélénium ou au système d'exploitation (MAC) d'ouvrir les fenêtres en arrière-plan?
selenium
selenium-webdriver
webdriver
selenium-grid
kevzettler
la source
la source
driver = webdriver.Firefox()
dans votre code, suivez ma réponse ici: stackoverflow.com/a/23898148/1515819Réponses:
Il existe plusieurs façons, mais ce n'est pas un simple "définir une valeur de configuration". Sauf si vous investissez dans un navigateur sans tête, qui ne répond pas aux exigences de tout le monde, c'est un peu un hack:
Comment masquer la fenêtre Firefox (Selenium WebDriver)?
et
Est-il possible de masquer le navigateur dans Selenium RC?
Vous pouvez `` supposément '' transmettre certains paramètres dans Chrome, en particulier:
--no-startup-window
Notez que pour certains navigateurs, en particulier IE, cela nuira à vos tests de ne pas l'exécuter en focus.
Vous pouvez également pirater un peu avec AutoIT, pour masquer la fenêtre une fois qu'elle est ouverte.
la source
Si vous utilisez le pilote Web Selenium avec Python, vous pouvez utiliser PyVirtualDisplay, un wrapper Python pour Xvfb et Xephyr.
PyVirtualDisplay a besoin de Xvfb comme dépendance. Sur Ubuntu, installez d'abord Xvfb:
puis installez PyVirtualDisplay depuis Pypi:
Exemple de script Selenium en Python en mode sans tête avec PyVirtualDisplay:
EDIT La réponse initiale a été publiée en 2014 et nous sommes maintenant à l'aube de 2018.Comme tout le reste, les navigateurs ont également avancé. Chrome a maintenant une version complètement sans tête, ce qui élimine le besoin d'utiliser des bibliothèques tierces pour masquer la fenêtre de l'interface utilisateur. Un exemple de code est le suivant:
la source
Chrome 57 a une option pour passer l'indicateur --headless, ce qui rend la fenêtre invisible.
Cet indicateur est différent de --no-startup-window car le dernier ne lance pas de fenêtre. Il est utilisé pour héberger des applications d'arrière-plan, comme l' indique cette page .
Code Java pour transmettre l'indicateur à Selenium webdriver (ChromeDriver):
la source
Pour une exécution sans navigateur, vous pouvez l'exécuter en mode sans tête .
Je vous montre un exemple en Python qui fonctionne pour moi en ce moment
Je vous ajoute également un peu plus d'informations à ce sujet sur le site officiel de Google https://developers.google.com/web/updates/2017/04/headless-chrome
la source
Depuis Chrome 57, vous avez l'argument sans tête:
Le mode sans tête de Chrome fonctionne 30,97% mieux que la version de l'interface utilisateur. L'autre pilote sans tête PhantomJS offre 34,92% de mieux que le mode sans tête de Chrome.
PhantomJSDriver
Le mode sans tête de Mozilla Firefox fonctionne 3.68% mieux que la version de l'interface utilisateur. C'est une déception, car le mode sans tête de Chrome atteint un temps> 30% meilleur que celui de l'interface utilisateur. L'autre pilote sans tête PhantomJS offre 34,92% de mieux que le mode sans tête de Chrome. Étonnamment pour moi, le navigateur Edge les bat tous.
Ceci est disponible à partir de Firefox 57+
Le mode sans tête de Mozilla Firefox fonctionne 3.68% mieux que la version de l'interface utilisateur. C'est une déception, car le mode sans tête de Chrome atteint un temps> 30% meilleur que celui de l'interface utilisateur. L'autre pilote sans tête PhantomJS offre 34,92% de mieux que le mode sans tête de Chrome. Étonnamment pour moi, le navigateur Edge les bat tous.
la source
Je suggère d'utiliser Phantom Js pour plus d'informations dont vous avez besoin pour visiter le site Web officiel de Phantom
après avoir téléchargé PhantomJs.exe, vous devez importer dans votre projet comme vous pouvez le voir dans l'image ci-dessous Phantomjs est à l'intérieur du commun >> Bibliothèque >> phantomjs.exe
Maintenant, tout ce que vous avez à l'intérieur de votre code Selenium est de changer la ligne
À quelque chose comme
Ça y est, ça a marché pour moi. et certainement il travaillera pour vous, Cheers
la source
Sous Windows, vous pouvez utiliser win32gui:
Exemple:
Cependant, il y a un problème avec cette solution - l'utilisation de la méthode send_keys fait apparaître la fenêtre. Vous pouvez y faire face en utilisant javascript qui n'affiche pas de fenêtre:
la source
J'ai utilisé ce code pour Firefox dans Windows et j'ai obtenu la réponse: (référence ici )
Mais je ne le teste pas pour d'autres navigateurs.
la source
Cela peut être dans les options. Voici le code java identique.
la source
Il s'agit d'une solution NodeJS simple qui fonctionne dans la nouvelle version 4.x (peut-être aussi 3.x) de Selenium.
Chrome:
Firefox:
Le tout tourne juste en arrière-plan. Exactement ce que nous voulons.
la source
Si vous utilisez le pilote chrome, vous pouvez utiliser ce code très simple: (cela a fonctionné pour moi)
la source
Sur * nix, vous pouvez également exécuter un serveur X sans tête comme Xvfb et y pointer la variable DISPLAY:
Faux serveur X pour les tests?
la source
Voici une solution .net qui a fonctionné pour moi:
Téléchargez PhantomJs ici http://phantomjs.org/download.html
Copiez le .exe à partir du dossier bin du téléchargement et collez-le dans le dossier bin debug / release de votre projet Visual Studio.
Ajoutez ceci en utilisant
Dans votre code, ouvrez le pilote comme ceci:
la source
Si vous utilisez Ubuntu (Gnome), une solution simple consiste à installer l'extension Gnome auto-move-window: https://extensions.gnome.org/extension/16/auto-move-windows/
Ensuite, réglez le navigateur (par exemple Chrome) sur un autre espace de travail (par exemple Workspace 2). Le navigateur fonctionnera silencieusement dans un autre espace de travail et ne vous dérangera plus. Vous pouvez toujours utiliser Chrome dans votre espace de travail sans aucune interruption.
la source
salut j'ai eu le même problème avec mon chromedriver en utilisant python et options.add_argument ("headless") ne fonctionnait pas pour moi mais ensuite j'ai réalisé comment le résoudre alors je l'apporte dans le code ci-dessous
j'espère que cela fonctionne pour vous.
la source
Une façon d'y parvenir consiste à exécuter le navigateur en mode sans tête. Un autre avantage de ceci est que les tests sont exécutés plus rapidement.
Veuillez trouver le code ci-dessous pour définir le mode sans tête dans le navigateur Chrome.
la source