7
votes

Un chemin autour de l'élément ne peut pas être défilé en vue - wattir-webdiver avec rubis

Donc, nous avons le code suivant dans notre page:

`WebElement.clickElement': Element cannot be scrolled into view:[object HTMLInputElement] (Selenium::WebDriver::Error::MoveTargetOutOfBoundsError)


5 commentaires

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.


5 Réponses :


0
votes

Tout d'abord, essayez d'essayer de localiser l'élément à l'aide de XPath: xxx pré>

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


0 commentaires

0
votes

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: @ browser.execute_script ("Votre JavaScript ici")

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. Execute_script ("$ (\" label.classname \ "). Removeclass (\" classname inline \ ")")


1 commentaires

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.



0
votes

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 ' sur le " https://quote.compaethemarket.com/motor/motor/aboutyourvehicle.aspx ? < / strong> "Page:

div_list = @ browser.Form (: action => "Aboutyourvehicle.aspx? tonne_t = ctmmo & prdcls = pc & rqstyp = newmotorquote & affli = cm01"). Div (: Classe => "INTERPOWRAP"). DIVS (: > "Radio personnalisée")

et ensuite: div_list [1] .Cliquez sur

J'espère que cela résout votre problème trop : -)


0 commentaires

1
votes

Voici deux solutions qui ont fonctionné pour moi:

Il y a un gemme rubis appelé roule-roule-roule qui peut fonctionner.

alors xxx

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: xxx

dans mon code, ".focus" défilé droit sur l'élément précédemment non visible. Cela peut aussi fonctionner pour vous aussi.


0 commentaires

0
votes

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 avec cliquez sur ) et que l'erreur a disparu.

Ma ligne pour éviter que l'erreur est la suivante: xxx < / Pré>

J'espère que ce sera utile pour vous


0 commentaires