水豚期待 page.selector to_have

Capybara expect page.selector to_have

我需要验证页面特定部分中某些文本的存在。

expect(page).to会输出太多的文字,尤其是协议条款的页面,总是那么长,特别烦人。

我想将 expect(page).to(have_text( 转换成 expect('#id').to(have_text(...)

我不知道如何 select 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: '...')

取决于您是否需要该元素来做其他事情。