Comment dois-je cliquer sur un bouton spécifique à l'aide de concombre/webrat lorsque le nom du bouton commence par le même mot?
J'ai le code html suivant avec de multiples entrées:
<input type="submit" value="Save and close" name="commit"/>
<input type="submit" value="Save" name="commit"/>
et souhaitez utiliser le concombre de test en cliquant sur le bouton "Enregistrer". Cependant, quand je fais cela dans un concombre test:
When I press "Save"
il clique sur "Enregistrer et fermer", car il apparaît avant le bouton "Enregistrer".
À la recherche à la webrat source pour trouver le bouton:
def button_element
button_elements.detect do |element|
@value.nil? ||
matches_id?(element) ||
matches_value?(element) ||
matches_html?(element) ||
matches_alt?(element)
end
end
...
def matches_value?(element)
element["value"] =~ /^\W*#{Regexp.escape(@value.to_s)}/i
end
...
il semble que webrat prend le premier match, et seulement matches depuis le début du contenu.
Est-il possible de faire une correspondance exacte, donc le concombre trouve "Enregistrer" et ne tient pas compte "Enregistrer et fermer"?
OriginalL'auteur zlog | 2010-01-08
Vous devez vous connecter pour publier un commentaire.
La click_button() la méthode, qui Concombre utilise pour la "Quand je de la presse..." prend l'une des trois paramètres (texte, nom, id). Vous pouvez simplement de différencier les boutons à l'aide de l'id ou le nom de l'attribut pour spécifier soit.
Puis dire:
Vous pouvez la portée de chaque bouton à l'intérieur d'un div.
Alors vous pouvez le champ d'application de la click_button() méthode:
OriginalL'auteur Synthlabs