2013-07-31 18 views
7

Wie kann ich auf einen Link klicken capybara.I verwenden, müssen die Staffelung LinkHREF-Link klicken Capybara mit

<a href="/arts?Occasion=Graduation&amp;top_menu_item_title=+-+Graduation">Graduation</a> 

Früher habe ich folgenden Code .aber zeigt Fehlermeldung nicht definierte Methode click

page.find(:link,"Graduation").click 
klicken

verwendet auch Xpath

page.find(:xpath, "//a[@href='/arts?Occasion=Graduation']").click 

es ist auch nicht wo rking

Aber mein Problem ist meine Seite enthält mehrere Links der Graduierung.

mit so page.all(:link,"Graduation") r eturns Ambiguous match, found 2 elements matching link "Graduation"

+0

Schauen Sie sich diese Arbeit - http://stackoverflow.com/questions/14513377/how-to-click-first-link-in-list-of-items - nach der Aufrüstung auf Capybara-2-0/14517076 # 14517076 –

Antwort

10
page.all(:link,"Graduation") returns Ambiguous match, found 2 elements matching link "Graduation" 

die Seite bedeutet, enthält mehrere Graduierung Text link.so wenn Sie möchten, die erste klicken Sie dieses

page.all(:link,"Graduation")[0].click 

es die erste Verbindung und die unter einem klickt schreiben Klicken Sie auf den zweiten Link. Sie können jeden für Ihre Bedürfnisse verwenden.

page.all(:link,"Graduation")[1].click 

bin sicher, das wird für Sie

2

Zuerst versuchen, es ohne den page Teil verwendet wird. Ich habe es nie selbst gebraucht

Dann können Sie versuchen, den Link mit dem CSS für den genauen Link zu finden.

find("a[href='/arts?Occasion=Graduation&amp;top_menu_item_title=+-+Graduation']").click 
Verwandte Themen