134 votes

Comment cliquer sur le premier lien de la liste des éléments après la mise à niveau vers Capybara 2.0 ?

Comment cliquer sur le premier lien dans ce cas :

<div class="item">
  <a href="http://stackoverflow.com/agree/">Agree</a>
</div>
<div class="item">
  <a href="http://stackoverflow.com/agree/">Agree</a>
</div>

within ".item" do
  first(:link, "Agree").click
end

et je reçois cette erreur :

Capybara::Ambiguous:
  Ambiguous match, found 2 elements matching css ".item"

Et sans le within Je reçois cette erreur :

Failure/Error: first(:link, "Agree").click
NoMethodError:
  undefined method `click' for nil:NilClass

2voto

nroose Points 135

Comme first() n'attend pas toujours, cela peut être utile :

expect(page).to have_css("selector")                               
first("selector").click

-3voto

cnttlc Points 12

Simple, vous pouvez l'utiliser :

$('.item').find('a').first().click();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X