web-dev-qa-db-ja.com

カピバラ:htmlコンテンツが必要です

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

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

出力:

失敗/エラー:page.should have_text( 'this is <b> bold </ b> "text"')
これが<b> bold </ b>\"....これは太字の\" text\"....." 
の "text \"
21
ole

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

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の評価はより制限的であるため、私はそれを好みます。

29
Andrei Botalov