Firefox et Chrome fonctionnent bien, mais avec IE 11, les touches d'envoi sont extrêmement lentes. Comment résolvez-vous ce problème?
Mon environnement:
Dans mon environnement: WIN 10, Selenium 3.4, IE64 J'ai défini: Options Internet → Avancé → Sécurité → ☑ Activer les processus 64 bits pour le mode protégé amélioré
Après avoir beaucoup lu en ligne et expérimenté
Je devais définir mon chemin pour qu'il pointe vers mon pilote Web Cliquez avec le bouton droit de la souris sur mon ordinateur, puis sélectionnez "Paramètres système avancés", cliquez ensuite sur "Variables d'environnement", puis sur "Chemin" et cliquez sur Modifier. Maintenant, ajoutez le chemin à votre IEDriverServer.exe, par exemple le mien était "C:\Eclipse\webdriver\IEDriverServer.exe". Je recommanderais de redémarrer votre pc
Vous devez exécuter le pilote Web IE 32 bits http://Selenium-release.storage.googleapis.com/index.html J'ai téléchargé la version 3.0.
Voici maintenant la pièce d’or qui a fait toute la différence pour le monde. Configurez votre IE pour fonctionner en tant qu’administrateur. Cliquez avec le bouton droit sur le raccourci IE et sélectionnez les options. Sous l'onglet Raccourci, cliquez sur le bouton Avancé, puis cochez la case "Exécuter en tant qu'administrateur". Maintenant, redémarrez IE
Lorsque vous ouvrez IE, accédez à Outils, à Options Internet, puis à l'onglet Sécurité. J'ai décoché "Activer le mode protégé" sur l'intranet local et les sites de confiance. Redémarrer IE
J'ai utilisé les fonctionnalités souhaitées suivantes (j'ai trouvé cela sur Internet)
DesiredCapabilities dc = new DesiredCapabilities();
dc.setCapability(InternetExplorerDriver.ENABLE_PERSISTENT_HOVERING,false);
dc.setCapability(InternetExplorerDriver.REQUIRE_WINDOW_FOCUS, false);
dc.setCapability(InternetExplorerDriver.UNEXPECTED_ALERT_BEHAVIOR, true);
dc.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
dc.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
dc.setJavascriptEnabled(true);
WebDriver driver = new InternetExplorerDriver(dc);
Cela a fonctionné dans mon environnement s'il vous plaît poster ce qui a fonctionné pour vous
Remarque: après cela, j'ai expérimenté le pilote 64 bits. Si je faisais le (InternetExplorerDriver.REQUIRE_WINDOW_FOCUS, true), alors ça marche en quelque sorte. Au début, l'assertion échouait mais je pouvais utiliser la clé d'envoi sur la première page.
Je l'ai corrigé en téléchargeant et en utilisant un fichier 32 bits. Le fil qui m'a aidé à résoudre
https://github.com/seleniumhq/Selenium-google-code-issue-archive/issues/5116
Meilleure solution:
Remarque: j'ai réinitialisé tous mes paramètres IE avant de procéder à cette solution. De plus, lors de ma première réponse, j'utilisais une version beaucoup plus ancienne du pilote IE.
Téléchargez le dernier pilote IE - J'ai téléchargé la version 3.4 32 bits (le 64 bits était encore lent lorsque je l'ai testé) http: //Selenium-release.storage.googleapis .com/index.html? path = 3.4/
Vous devrez modifier vos IE paramètres 2.1 Cliquez sur Outils -> Options Internet -> Sécurité. Réglez toutes les zones sur le même mode protégé, activé ou désactivé, n’a aucune importance. Comme ceci: http://seleniumquery.github.io/images/ie-driver-protected-mode-disable.png
Maintenant, dans votre code, ajoutez ceci:
public static void runInternetExplorer() {
System.setProperty("webdriver.ie.driver", "C:\\Eclipse\\webdriver\\IE\\IEDriverServer.exe");
WebDriver webDriver = new InternetExplorerDriver();
new browser (webDriver);
}
Quand je lance ça, ça fonctionne très bien. J'ai laissé ma réponse précédente si cette solution ne fonctionne pas.
Une note pour Ruby
et webdiriver
version 3+
La documentation contient des exemples avec le paramètre native_events
IE, même s'il est écrit dans la console au point de départ.
En fait, le bon nom de paramètre est nativeEvent
.
Définissez nativeEvent = false
,
et webdriver utiliseront JS rapide au lieu d’une simulation de clic native lente.
J'ai travaillé sur IE11 avec la bibliothèque Selenium: Selenium-server-standalone-3.141.59.jar Et voici les constatations suivantes:
Sous Windows 10 version 64 bits IE 11 version 11.431.16299, version mise à jour 11.0.65 (KB4103765) Il fonctionne correctement avec IEDriverServer.exe (version 64 bits) Inutile. réglage supplémentaire sur la capacité. La période de saisie est acceptable (pour 6 caractères en 1 seconde)
Sous Windows 10 version 64 bits IE 11 version 11.15.16299.0 mise à jour la version 11.0.47 KB4040685 Cela fonctionne très lentement avec IEDriverServer.exe (version 64 bits) Pour entrer une valeur 6 chaîne de caractères, chaque caractère a besoin de 3-4 secondes pour être complété. Pour résoudre le problème, le codage suivant que j'ai testé fonctionne bien pour moi.
InternetExplorerOptions options = new InternetExplorerOptions();
options.setCapability(InternetExplorerDriver.REQUIRE_WINDOW_FOCUS, true);
Sous Windows 7 Professional version 32 bits IE 11 version 11.0.9600.18499, version mise à jour 11.0.36 (KB3191495) Il fonctionne correctement avec IEDriverServer.exe (version 32 bits). La période de saisie est acceptable. (6 caractères en une seconde) Aucun réglage supplémentaire requis.
J'ai changé pour IEDriver 32 bits (à partir de 64 bits) a résolu ce problème pour moi. IE 11, Windows 7, Selenium 3.4.
Dans IE11, la saisie des données dans les champs de texte (touche d'envoi) est trop lente lors de la relecture des tests.
Voici des informations sur les systèmes. IEDriver - 64 bits, OS - Windows7 64 bits, IE10 - 64 bits
Remarque: je suis confronté au même problème et mon problème a été résolu en réinstallant IEDriver - 32 bit , il fonctionne correctement avec le pilote IE 32 bits.
Internet Explorer 11 fonctionnait lentement sur une machine virtuelle Windows 8.1. J'utilisais IEDriverServer.exe 3.5.1.0 (x32), que je corrigais en passant à IEDriverServer.exe 3.5.1.0 (x64). Remarque: 3.4.0.0 ne résout pas ce problème. nativeEvents: false n'a rien changé. Le pilote est dans mon chemin, je ne sais pas ce qui se passe si ce n'est pas le cas.
Note de publication v2.47.0.1:
( https://raw.githubusercontent.com/SeleniumHQ/Selenium/master/cpp/iedriverserver/CHANGELOG )
Donc, vous devriez utiliser 32 bits ou le rendu du contenu doit être changé en 64 bits
Publication de cette solution pour les développeurs utilisant Python 3.6 et Selenium 3.14.
Dans mon cas, les paramètres IE appropriés sont verrouillés par la stratégie de groupe, de sorte que toute solution nécessitant une modification des paramètres IE est inutilisable.
Un seul paramètre d'option devait être modifié pour corriger les sendkeys lents dans mon environnement spécifique (Windows 7 x64, IE 11.0.9600 verrouillé, Python 3.6, Selenium 3.14.1):
from Selenium import webdriver
from Selenium.webdriver.ie.options import Options
opts = Options()
opts.require_window_focus = True
driver = webdriver.Ie(options=opts)