Donc, nous avons le code suivant dans notre page:
`WebElement.clickElement': Element cannot be scrolled into view:[object HTMLInputElement] (Selenium::WebDriver::Error::MoveTargetOutOfBoundsError)
5 Réponses :
Tout d'abord, essayez d'essayer de localiser l'élément à l'aide de XPath: ou p> alternativement s'il s'agit d'un élément caché que vous essayez de localiser, alors vous êtes mieux en train d'utiliser CSS. Téléchargez Firebug Add-on pour Firefox et copiez le chemin CSS de votre élément. P> Il devrait être quelque chose comme: p> browser.element(:css => "the CSS path you have copied from Firebug").click
Vous pouvez manipuler le HTML à la volée en exécutant du JavaScript pour rendre l'élément radio réglable. Pour exécuter JavaScript sur une page, faites quelque chose comme:
J'ai utilisé quelque chose comme le JavaScript suivant pour éliminer la classe d'une balise d'étiquette qui l'a déplacé hors du chemin de la balise d'entrée que j'essayais d'agir pour un problème spécifique au chrome que j'avais.
@ browser.execute_script ("Votre JavaScript ici") code> p>
Execute_script ("$ (\" label.classname \ "). Removeclass (\" classname inline \ ")") code> p> p>
La question ne suggère pas que l'élément radio n'est pas réglable; Seulement qu'ils ont des difficultés à faire défiler.
Si l'élément est contenu dans un formulaire et une classe DIV (enveloppe), j'ai constaté que je devais procéder comme suit pour cliquer sur le bouton radio ' non fort>' sur le " et ensuite:
div_list [1] .Cliquez sur strong> p>
J'espère que cela résout votre problème trop
Voici deux solutions qui ont fonctionné pour moi:
Il y a un gemme rubis appelé roule-roule-roule qui peut fonctionner. p>
alors p> Si vous ne souhaitez pas ajouter de bijou, mon collègue a suggéré quelque chose qui a quelque chose un peu Étonnamment (pour moi) avait le même effet que le code ci-dessus: p> dans mon code, ".focus" défilé droit sur l'élément précédemment non visible. Cela peut aussi fonctionner pour vous aussi. P> p>
Je n'utilise pas Watir, mais j'ai la même erreur que vous "... n'a pas pu être défilé en vue ...". J'ai essayé d'utiliser Watir juste pour le résoudre et je n'ai pas travaillé pour moi. Ensuite, j'utilise un actebuilder ( move_to em> avec cliquez sur em>) et que l'erreur a disparu. Ma ligne pour éviter que l'erreur est la suivante: p> J'espère que ce sera utile pour vous p> p>
Je ne pouvais pas reproduire votre problème à l'aide d'une page avec uniquement le HTML fourni. Y a-t-il plus de la page qui est nécessaire pour reproduire votre problème? Quel navigateur avez-vous passé votre essai (c'est-à-dire qu'il se produit dans tous les navigateurs)? Vous mentionnez d'utiliser le dernier gemme watir-webDriver, mais vous avez également veillé à ce que Selenium-webDiver soit à jour?
Vous dites "Nous savons que Selenium 2 fait défiler la page à l'élément ..." Pouvez-vous élaborer à ce sujet? Comment sais-tu cela? Voyez-vous que cela se produise?
Y a-t-il beaucoup de choses Ajax sur la page? Des parties de la page étant rendues après que le navigateur soit effectué "Chargement", votre problème peut découler d'essayer d'interagir avec l'élément avant qu'il soit "prêt" ou a été déplacé dans une position finale sur la page, en d'autres termes, une question de synchronisation. Vous pouvez essayer les commandes manuellement via IRB et voir s'ils fonctionnent, s'ils le font, c'est généralement le signe d'un problème de synchronisation
Je recommanderais simplement à essayer un autre localisateur. XPath ou CSS devrait le faire pour vous et vous ne devriez pas avoir besoin de faire défiler ou quelque chose du genre. Utilisez-vous Firebug?
Je ne comprends pas la partie d'être des ingénieurs d'AQ. Si le changement de HTML était la solution requise pour automatiser les tests et supprimer le risque de régression, vous devez avoir la capacité de l'obtenir modifié en apportant la question à l'équipe.