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