J'exécute l'un de mes scripts sur le navigateur IE 11
avec Selenium 2.43.1
Lorsque le script entre dans le champ de texte à l'aide des éléments suivants:
element.sendKeys("string");
Dans le navigateur IE, je peux voir qu'un caractère de chaîne est saisi dans un champ de texte et attend pendant 1-2 secondes avant de saisir le caractère suivant. Moyens pour taper un caractère cela prend 1-2 secondes.
Pour moi, cela a fonctionné avec la version 64 bits de IEDriverServer. J'ai ajouté la propriété requireWindowFocus avec la valeur "true":
DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
...
capabilities.setCapability("requireWindowFocus", true);
WebDriver driver = new InternetExplorerDriver(capabilities);
J'utilise la version 2.47 du pilote Selenium/IE
Pour WebDriver 64 bits:
Pour WebDriver 32 bits:
étrangement:
Ma configuration: Windows 10, IE 11, tout 64 bits, Selenium 3.4
Cela a accéléré un peu pour moi. IEDriverServer 2.53.1
InternetExplorerOptions options = new InternetExplorerOptions();
options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
options.RequireWindowFocus = true;
driver = new InternetExplorerDriver(options);
Vous pouvez passer à la version 32 bits, mais si la version 64 bits est requise, vous pouvez essayer cette solution:
Il en résulte que vous ne devez plus taper d’escargot sur Internet Explorer 64 bits.
J'ai eu le même problème lors de l'utilisation de la version 64 bits de IEDriverServer. Changez pour le 32bit et cela a bien fonctionné.
J'ai aussi eu le même problème en retour. Vous pouvez essayer par
Options Internet -> Connexions -> Paramètres réseau -> Décocher Détecter automatiquement les paramètres .
J'espère que cela t'aides.
Pour les tests exécutés sur IE11 64 bits, la définition de la capacité NATIVE_EVENTS
sur false
fonctionnait pour moi .. Sans elle, l'utilisation du pilote de pilote 64 bits 3.0 était extrêmement lente, comme indiqué. Le serveur de pilotes 32 bits 3.0 a avalé certains des caractères qu’il était censé envoyer (par exemple, "FluentLenium" est devenu "FlntLnum").
Ce qui suit a résolu les deux problèmes.
DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
capabilities.setCapability(InternetExplorerDriver.NATIVE_EVENTS, false);
WebDriver driver = new InternetExplorerDriver(capabilities);
Je ne suis pas sûr si cela a des effets secondaires supplémentaires.
pour améliorer la vitesse d’envoi de la fonction touches, on peut effectuer les étapes suivantes: -
Cela fonctionnera sans problème.
Désactiver NATIVE_EVENT a résolu mon problème.
DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
capabilities.setCapability(InternetExplorerDriver.NATIVE_EVENTS, false);
driver = new InternetExplorerDriver(capabilities);
Vous pouvez passer à la version 32 bits, la vitesse sera comparable à 64 bits.
Au lieu de WebEelement.send.keys, j'ai utilisé l'objet Actions avec la méthode sendKeys. Cela a fonctionné comme un charme.
J'ai également rencontré le même problème avec IE11 sur Windows x64 bits. J'utilisais la version 64 bits de IEDriverServer.exe (pilote IE 3.7.0 avec Selenium 3.7.0).
Après avoir changé pour la version 32 bits de IEDriverServer.exe, le problème a été résolu.
J'ai eu du mal presque un jour à le découvrir. Cela est dû au serveur (<code>) 64 bits IE (IEDriverServer_x64_2.53.1
).
Je suis passé à IEDriverServer_Win32_2.53.1
puis cela a fonctionné, il est super rapide maintenant!
C'est probablement un problème avec la machine sur laquelle vous exécutez le test. Si vous rencontrez un décalage général avec l'ordinateur, cela se produira.
Existe-t-il un autre moyen d'accélérer la saisie?
Bien sûr, vous pouvez créer une méthode personnalisée pour effacer le texte, puis utiliser JavaScript pour remplir le champ. (Notez que cela pourrait ne pas être en mesure de travailler avec des éléments tels que "typeahead" et "suggestions as dactylographiées")