2012-05-25 8 views
8

का एक हिस्सा मैच के लिए मुझे लगता है कि <a href='/bla/bla/bla/?page=xxx>text</a> मैं certains xxx मूल्यों Capybara और RSpec का उपयोग कर लिंक से मेल करना चाहते हैं जैसे कई लिंक के साथ एक पृष्ठ है, मैं href विशेषता का bla/bla/bla के बारे में हिस्सा परवाह नहीं है।Capybara + Rspec कैसे टैग विशेषता

page.should have_selector("div.class ul li a", :href => "page=2") 

काम नहीं करता, भी

page.should have_xpath("//a[@href='page=2']") 

एक विकल्प क्योंकि मैं पूर्ण href विशेषता मान पता नहीं है नहीं है।

पीएस: सभी उपलब्ध विधियों और पैरामीटर के विवरण प्राप्त करने के लिए बस कोई भी पूर्ण कैपिरा एपीआई दस्तावेज नहीं मिला। क्या ऐसी कोई बात है?

+0

पुन। दस्तावेज, [कैपिबरा readme.md] में (https://github.com/jnicklas/capybara) गीथब पर, "ढूँढना" पर अनुभाग की खोज करें। उस खंड में रूबीडोक को [कैपिबारा :: नोड :: फाइंडर्स] (http://rubydoc.info/github/jnicklas/capybara/master/Capybara/Node/Finders) पर पूर्ण संदर्भ के लिए संदर्भित किया गया है। –

उत्तर

14

contains उपयोग करके देखें:

page.should have_xpath "//a[contains(@href,'page=2')]" 
+1

धन्यवाद, यही वह है जिसे मैं ढूंढ रहा था, दुर्भाग्यवश कैपिबरा व्यापक दस्तावेज़ीकरण को याद करता है :( – aristofun

3

इस प्रयास करें:

link = page.find('div.class ul li a') 
link[:href].should match(/page=2/) 

अधिक जानकारी here

+0

जो पहला तत्व पाता है और इसका href देखता है, लेकिन यदि कोई तत्व – aristofun

+0

है तो मैं मिलान करना चाहता हूं तो आप दो दावे करना चाहते हैं ... सबसे पहले कि आप जिस लिंक को चाहते हैं वह मौजूद है और फिर उसके href मान में/पृष्ठ = # {some_value} /। साथ ही, मुझे लगता है कि यह अस्तित्व का परीक्षण करने लायक है, यह एक आईडी देने लायक है। आपको 'div.class ul li a' की खोज नहीं करनी चाहिए) –