6
votes

Selenium WebDiver Sendkeys ne déclenche pas l'événement Onchange dans IE9.0

J'écris des scripts de test de sélénium à l'aide de Java pour une application intégrée à EXTJS. J'ai un champ de saisie dans l'une des pages qui est attachée à l'événement 'Onchange'. Chaque fois que l'utilisateur modifie le texte dans le champ, l'événement OnCHange est déclenché. J'utilise WebDriver SendKeys () pour modifier le texte dans le champ. Donc, chaque fois que le texte est modifié, l'événement 'Onchange' est déclenché dans Firefox et Chrome (comme prévu) mais ce n'est pas déclenché dans IE9.0. J'ai cherché partout sur le net pour la solution, mais j'ai trouvé un. Alors s'il vous plaît quelqu'un peut-il m'aider à ce sujet? Faites-moi savoir plus d'informations est requise


0 commentaires

3 Réponses :


0
votes

Je crois que cela est dû au fait que c'est-à-dire déclencher l'ondanange qu'après surNeur. Ce qui signifie que vous devrez forcer le champ de saisie à perdre la mise au point. Le moyen le plus simple de le faire est de cliquer sur un autre élément.


1 commentaires

Merci JoostsChouten. J'ai essayé cette approche. Cela fonctionne bien pour «Onblur» événement mais pas pour l'événement 'Onchange'. Je vois ce numéro uniquement sur le navigateur IE.



4
votes

Vous pouvez soit cliquer sur un autre élément sur le champ, soit peut-être le moyen plus facile d'onglet du champ après la fin de l'entrée.

Dans les applications ExtJS que j'ai automatisées, je vais toujours hors du champ après avoir effectué l'entrée, qui incendie tous les événements corrects. p>

à l'aide de C # comme exemple: P>

IWebElement element = driver.FindElement(By.Id("some_input_field"));
element.SendKeys("test input")
element.SendKeys(Keys.Tab);


1 commentaires

Merci PocketDews .. J'ai essayé de cliquer sur un autre élément après l'entrée, mais cela ne fonctionne pas. Je n'ai pas essayé avec l'onglet, je vais essayer avec ça aujourd'hui et vous le faire savoir.



0
votes

J'ai eu ce numéro corrigé. L'événement 'Onchange' n'était pas déclenché que dans certains scénarios. Si le texte d'entrée est identique à celui du texte qui existe déjà dans TextField, l'événement OnChange n'est pas déclenché via SendKey (). Mais le même code fonctionne bien pour les navigateurs FF et Chrome. Je viens de m'assurer d'effacer et d'ajouter des espaces blancheurs avant de définir un nouveau texte dans le champ de texte pour ie navigateurs et son travail. Merci les gars pour la réponse!


0 commentaires