2013-04-03 4 views
1

J'ai un bouton (type = "radio"), et ce bouton a du Javascript dessus.
I situé sur le bouton en utilisant XPath:Vérifiez que le bouton est cliquez sur

browser.element(:xpath, n2).wait_until_present 
browser.element(:xpath, n2).fire_event "onclick" 

Disons que je dois cliquer sur le même bouton pour 100 fois dans une boucle, et 80% du temps, il est défaillant. Cela fonctionne parfois sans problème. Après avoir cliqué sur le bouton et quand j'ai descendu le navigateur en faisant d'autres clics, ce bouton est en train de décocher (effacer) tout seul. J'ai besoin de ce bouton pour rester cliqué tout le temps pendant que je suis sur cette page.

J'essaie d'ajouter des délais, mais pas d'aide. Y a-t-il un autre moyen de gérer ce problème?

+2

Soit nous diriger vers une page où le problème peut être reproduit ou créer une page et le mettre quelque part public, comme la boîte de dépôt. –

+0

Juste pour que vous connaissiez la nomenclature sage. Un bouton est un type d'élément d'entrée HTML, et il est également facile d'avoir des éléments de lien qui apparaissent (via un fichier image) comme un bouton. Une radio est un type de contrôle d'entrée complètement différent, conçu pour vous permettre de choisir un seul parmi plusieurs –

+0

S'il vous plaît nous montrer la partie pertinente de l'HTML –

Répondre

2

Watir fournit des méthodes spécifiques pour interagir avec des éléments d'entrée de type radio-bouton, voir http://rubydoc.info/gems/watir-webdriver/Watir/Radio

Ne pas utiliser XPath comme un localisateur à moins que vous n'avez pas d'autre choix, le laid, fragile sinon fait droit, et dur pour donner un sens à. Pour un élément de radio que vous identifiez habituellement par la valeur ou du texte

--Using l'exemple à http://www.echoecho.com/htmlforms10.htm

Pour régler la radio fromage

browser.radio(:value => "Cheese").set 

Pour examiner est .set l'utilisation de l'État? il retourne vrai faux

puts browser.radio(:value => "Cheese").set? 

savoir que s'il y a javascript sur la page, en fonction des actions qu'il faut, il pourrait UNSET la radio. Mais vous pouvez toujours avoir votre script vérifier son état après avoir pris d'autres actions sur cette page.

Questions connexes