0

次の HTML の 2 番目のリンクを検証しようとしています:

<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 要素を調査するべきではありませんか? これはバグでしょうか、それとも何か間違ったことをしていますか?

2番目のリンクを検証できる他の方法はありますか?

助けてくれてありがとう!

4

1 に答える 1

0

あなたの場合、findはCapybara <2.0で最初aに検出され、Capybara 2.0ではそのようなロケーターを持つ要素が複数あるため、あいまいな一致の例外が発生します。

次のことを行うことをお勧めします。

page.should have_selector('#navigation a', text: 'Radio')
于 2012-12-14T21:28:19.450 に答える