Selenium WebDriver fonctionne, mais LENT (Java)
Je suis en utilisant Selenium WebDriver pour prendre une capture d'écran de pages web. Il fonctionne très bien. Toutefois, depuis le temps que j'ai frappé exécuter dans eclipse pour le temps de la capture d'écran montre que dans mon disque local est de 7 à 10 secondes. La plupart du temps de latence semble être le lancement de Firefox.
Code:
WebDriver driver = new FirefoxDriver();
driver.get("http://www.cnn.com");
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File("c:\\test\\screenshot.png"));
Comment puis-je accélérer ce processus? Est-il possible que je peux en utiliser une déjà ouvert le navigateur Firefox pour enregistrer sur l'ouverture d'un nouveau? Est-ce code en quelque sorte lourde?
Détails: Essayé sur CentOS boîte et Win7 zone à la fois à l'aide d'eclipse. myspeedtest.net montre 22Mbps en bas et 1 Mbit /s jusqu'.
OriginalL'auteur Chris | 2012-10-22
Vous devez vous connecter pour publier un commentaire.
Ce que vous demandez (permettant
WebDriver
pour l'attacher à un navigateur en cours d'exécution) a été un problème maintenant pour près de 3 ans. À ce jour, cette fonctionnalité n'a pas encore été ajouté. Autant que je sache, il n'y a aucun moyen de faire Firefox charger plus rapidement. Vous pouvez essayer quelques autres trucs.Citant la mise en garde de cette page:
Vous pouvez également essayer chargement avec un profil et voir si cela aide à tous.
OriginalL'auteur Mike Kwan
De ce que j'ai appris d'ailleurs -
Références:
https://sqa.stackexchange.com/questions/1988/selenium-reuse-existing-browser-session-instead-of-opening-new-windows
http://www.codeweavers.net/6-ways-to-speed-up-selenium-tests/
http://sauceio.com/index.php/2011/02/speed-up-your-selenium-tests/
Espérons que cette aide!
Aimé l'article!!! 🙂
OriginalL'auteur some_other_guy
Ce fil montre une explication possible.
Pour résumer, le Sélénium boucle par tous les cartes réseau et les appels de méthode (getHostName) qui prend beaucoup de temps pour les cartes réseaux virtuelles. Désactiver résolu le problème de l'OP dans le fil.
(Dans mon propre cas, je ne suis pas en mesure de désactiver l'un d'eux et attendre au début de chaque cas de test...)
OriginalL'auteur Timores
Je me rends compte que cette question a déjà été posée, mais j'espère que cela aide quelqu'un avec le même problème.
Si tout ce que vous devez faire est de prendre des captures d'écran. Je recommande d'utiliser Awesomium.NET.
http://awesomium.com/
De faire cela en C# plutôt que Java ne devrait pas être une difficulté majeure, car ils ont la même syntaxe. Il prend également en charge C++ si vous voulez exécuter votre application sur Linux. Je présume qu'il sera nettement plus rapide que le WebDriver.
Utilisez cette option si vous choisissez C++: http://labs.awesomium.com/capturing-web-pages-with-c/
Pour C#.NET: http://awesomium.com/docs/1_7_rc3/sharp_api/
cela a un lien mort
OriginalL'auteur Nyx
J'ai eu le même problème dans Windows et la cause était liée à la résolution de
localhost
. Dans ce cas, il y a deux façons de résoudre ce problème:remplacer localhost par 127.0.0.1 (donc aller à l'url comme
http://127.0.0.1
). Cependant ce mess avecnetwork.automatic-ntlm-auth.trusted-uris
paramètre lors de l'essai à l'encontre de l'application web à l'aide de l'authentification NTLM, car il requiert un nom d'hôte, pas une adresse IPchangement
hosts
(par ex. C:\Windows\System32\drivers\etc) pour résoudre directement localhost 127.0.0.1:OriginalL'auteur Alexei
Pour moi, il a travaillé avec la version 64 bits de IEDriverServer,
J'ai ajouté la propriété requireWindowFocus avec: Valeur"true".
OriginalL'auteur Krushna Chulet