如何使用水豚检查页面上的 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\"....."
您的代码不起作用,因为 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 评估,因为它更具限制性。