146 Stimmen

Wie kann ich nach dem Upgrade auf Capybara 2.0 den ersten Link in der Liste der Elemente anklicken?

Wie klickt man in diesem Fall den ersten Link an?

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

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

und ich erhalte diesen Fehler:

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

Und ohne die within Ich erhalte diesen Fehler:

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

2voto

nroose Punkte 1592

Da first() nicht immer wartet, ist dies vielleicht nützlich:

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

-4voto

IT Vlogs Punkte 2345

Sie können es einfach verwenden:

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X