Cyr*_*ris 3 rspec capybara rspec-rails ruby-on-rails-5
我需要验证页面特定部分中某些文本的存在。
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>`
Run Code Online (Sandbox Code Playgroud)
您在这里有多种选择
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(...)
Run Code Online (Sandbox Code Playgroud)
要么
expect(page).to have_css('#id', text: '...')
Run Code Online (Sandbox Code Playgroud)
要么
expect(page).to have_selector(:id, 'id', text: '...')
Run Code Online (Sandbox Code Playgroud)
取决于您是否需要其他元素。
| 归档时间: |
|
| 查看次数: |
2951 次 |
| 最近记录: |