Capybara:page_find似乎没有使用双斜杠(//)

时间:2012-12-13 00:02:13

标签: capybara

尝试验证以下HTML中的第二个链接:

<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"

当我使用双斜线时,不应该在DIV节点内的所有A元素中找到方法研究吗?这可能是一个错误,还是我做错了什么?

还有其他方法可以验证第二个链接吗?

感谢帮助人员!

1 个答案:

答案 0 :(得分:0)

在你的情况下,find会在Capybara中找到a&lt; 2.0并将在Capybara 2.0中引发一个不明确的匹配异常,因为这样的定位器有多个元素。

我建议你做以下事情:

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