我正在使用单选按钮对表单执行某些测试。我有一个具有以下标识符的单选按钮:
<input checked="checked" class="radio_buttons optional" id="rating_commute_8" name="rating[commute]" type="radio" value="8">
我试图让它通过以下测试,但它给了我错误Failure/Error: within(:css, '#rating_commute_8').should be_checked LocalJumpError: no block given (yield)
:
within(:css, '#rating_commute_8').should be_checked
答案 0 :(得分:1)
较新版本的rspec / capybara没有它应该是这样的:
within('form') do
expect(page).to have_checked_field('rating_commute_8')
end
答案 1 :(得分:0)
within
方法用于确定查找元素的范围。例如,您可能只想查找某个div中的单选按钮:
within(:css, '#some_parent_div') do
find(:css, '#rating_commute_8').should be_checked
end
在这种情况下,假设单选按钮的id是唯一的,则无需定义特定的搜索范围。您只需找到该元素,然后检查它是否已被选中。要找到该元素,您需要使用find
而不是within
。以下应该有效:
find(:css, '#rating_commute_8').should be_checked