2012-12-13 27 views
0

試圖驗證在下面的HTML的第二鏈路來工作:以下表達式水豚:page_find似乎不與雙斜線(//)

<div id="navigation"> 
<ul> 
    <li> 
    <a href="/tv">TV</a> 
    </li> 
    <li> 
    <a href="/radio">Radio</a> 
    </li> 

page.find(:xpath, "//div[@id='navigation']//a").should have_content('Radio') 

並且出現以下錯誤:

expected there to be content "Radio" in "TV" 

應該不對find方法研究DIV節點內的所有A元素,因爲我是使用雙斜槓?這可能是一個錯誤,或者我做錯了什麼?

是否有任何其他方式可以驗證第二個鏈接?

感謝您的幫助!

回答

0

在你的情況find會發現在水豚< 2.0第一a,將引發歧義匹配例外水豚2.0因爲有這樣的定位不止一個元素。

我建議你做到以下幾點:

page.should have_selector('#navigation a', text: 'Radio') 
+0

謝謝你安德烈,我想我不得不使用page.find以導航到一個元素。 page.should找到我正在搜索的元素。乾杯!! – mickael

+0

@mickael水豚有很多[Matchers](http://rubydoc.info/github/jnicklas/capybara/master/Capybara/Node/Matchers)。研究它們 –