Ответ 1
Ваш код не работает, так как метод Capybara has_text?
(и таким образом have_text
) проверяет текст, а не html-источник элемента, на который он вызывается.
Если вы используете драйвер, который поддерживает оценку Javascript (например, Selenium, Poltergeist или Capybara-Webkit), вы можете получить внутренний HTML-код элемента с помощью Javascript:
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 как более ограничительную.