web-dev-qa-db-fra.com

Selenium WebDriver taper très lentement dans le champ de texte sur IE navigateur

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.

  1. Pourquoi taper si lentement avec IE?
  2. Existe-t-il un autre moyen d'accélérer la saisie?
48
TDHM

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

31
Stasilla

Pour WebDriver 64 bits:

  1. Ouvrir IE
  2. Sélectionnez Options Internet → Avancé → Sécurité.
  3. Vérifier Activer les processus 64 bits pour le mode protégé amélioré
  4. Cliquez sur Appliquer et sur OK

Pour WebDriver 32 bits:

  1. Ouvrir IE
  2. Sélectionnez Options Internet → Avancé → Sécurité.
  3. Désélectionnez ☐ Activer les processus 64 bits pour le mode protégé amélioré
  4. Cliquez sur Appliquer et sur OK

étrangement:

  • Le réglage était nécessaire, que le mode de protection renforcée soit activé ou non.
  • Autre que le texte dit dans la boîte de dialogue, le redémarrage de mon ordinateur n'était pas nécessaire.

Ma configuration: Windows 10, IE 11, tout 64 bits, Selenium 3.4

13
Marcus

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);
11
Demodave

Vous pouvez passer à la version 32 bits, mais si la version 64 bits est requise, vous pouvez essayer cette solution:

  • Options Internet -> Sécurité -> Cochez "Activer le mode protégé" pour toutes les zones
  • Allez dans Avancé -> Sécurité -> Cochez "Activer le mode protégé amélioré"

Il en résulte que vous ne devez plus taper d’escargot sur Internet Explorer 64 bits.

5
Viet Pham

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é.

Source: WebDriver et IE10, entrée très lente

2
Jamie Rees

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.

2
Vivek Singh

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.

2
wwerner

pour améliorer la vitesse d’envoi de la fonction touches, on peut effectuer les étapes suivantes: -

  1. accédez au projet -> Propriétés -> Compilateur Java -> sous la conformité Java - désélectionnez l'option d'utilisation de la conformité, modifiez le niveau de conformité de la compilation sur 1,7, puis cliquez pour appliquer.

Cela fonctionnera sans problème.

0
Ruchi Dahiya

Désactiver NATIVE_EVENT a résolu mon problème.

 DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
 capabilities.setCapability(InternetExplorerDriver.NATIVE_EVENTS, false);
 driver = new InternetExplorerDriver(capabilities);
0
Naren Chejara

Vous pouvez passer à la version 32 bits, la vitesse sera comparable à 64 bits.

0
Sivananda Reddy

Au lieu de WebEelement.send.keys, j'ai utilisé l'objet Actions avec la méthode sendKeys. Cela a fonctionné comme un charme.

0
Nisim Naim

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. 

0
Srikanth Gurram

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!

0
S Kotra

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")

0
sircapsalot