我需要验证页面中特定部分是否存在某些文本。
expect(page).to
将输出过多的文本,这对于保存协议条款的页面来说尤其令人讨厌,因为协议条款总是很长。
我想把expect(page).to(have_text(
变成expect('#id').to(have_text(...)
我不知道如何选择由ID引用的页面部分。我应该把我的expect(page)
写在within('#id')
里面吗?
编辑:如果可能的话,一个针对嵌套标签的解决方案
<div id="id">
<span class="nested">...</span>
Text I want to check with have_text()
</div>`
你有多种选择,要么
section = find(:css, '#id') #the :css may be optional depending on your Capybara.default_selector setting
# or - section = find_by_id('id')
expect(section).to have_text(...)
或
expect(page).to have_css('#id', text: '...')
或
expect(page).to have_selector(:id, 'id', text: '...')
取决于您是否需要该元素用于其他内容