2012-05-25 34 views
8

的一部分,我有幾個環節一樣,<a href='/bla/bla/bla/?page=xxx>text</a> 我想匹配某些碼使用水豚和RSpec xxx值鏈接的頁面,我不關心bla/bla/blahref屬性的一部分。水豚+ Rspec的如何匹配標籤屬性

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

不起作用, 也

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

是不是一種選擇,因爲我不知道全href屬性值。 PS:也沒有找到任何完整的Capybara API文檔來獲取所有可用的方法和參數的描述。我有這樣的事情嗎?

+0

回覆。文檔,在Github的[Capybara readme.md](https://github.com/jnicklas/capybara)上搜索關於「Finding」的部分。該部分提及[Capybara :: Node :: Finders]上的Rubydoc(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值包含/ page =# {SOME_VALUE} /。此外,我認爲值得測試的存在,值得給一個身份證。你不應該搜索'div.class ul li a') –