22

カピバラでページのhtmlコンテンツを確認するにはどうすればよいですか?

page.should have_text('this is <b>bold</b> "text"')

出力:

失敗/エラー: page.should have_text('this is <b>bold</b> "text"')
  this is <b>bold</b> \"text\" in "....this is bold \"text\"....." があると予想されます
4

1 に答える 1

29

あなたのコードは、それが呼び出される要素のhtmlソースではなく、Capybaraのhas_text?(したがってhave_text)メソッドがテキストをチェックするため、機能しません。

Javascript 評価をサポートするドライバー (Selenium、Poltergeist、Capybara-Webkit など) を使用する場合、Javascript を使用して要素の内部 HTML を取得できます。

html = page.evaluate_script("document.getElementById('answer-15988092').innerHTML")
html.should include('this is <b>bold</b> "text"')

ページの HTML 全体に要素が含まれていることを確認したい場合は、htmlページ ソースを返すメソッドを使用できます。

page.html.should include('this is <b>bold</b> "text"')

通常、より制限的な JavaScript 評価を好みます。

于 2013-04-13T21:28:04.537 に答える