我正在尝试测试一个简单的标题复选框,检查表格中的所有复选框。
测试如下:
scenario 'select all enrolments', js: true do
check 'all_enrolment_presentations'
expect(page).to have_css('.enrolment-presentation-listing input[type="checkbox"]:checked', count: 1)
end
如果我将场景稍微更改为
,则会失败scenario 'select all enrolments', js: true do
sleep 3
check 'all_enrolment_presentations'
expect(page).to have_css('.enrolment-presentation-listing input[type="checkbox"]:checked', count: 1)
end
有效。
我测试了其他几个选择器,它们几乎都有相同的效果。我不想添加sleep语句来获取这样的东西。我一定做错了。
当我在没有sleep子句的情况下运行测试时,似乎找到了控件(它会突出显示),但是没有检查。请参阅截图,了解我的意思。
我的问题是为什么会发生这种情况,如何解决我的问题?
注意我使用的是rails 4.2.4和capybara 2.5.0
答案 0 :(得分:0)
经过一些进一步的调查后,这个错误实际上是将selenium-webdriver从版本2.45.0升级到2.48.1引起的。我没有足够的时间来研究宝石中的根本原因。
答案 1 :(得分:0)
你必须等到水豚进行点击操作。
所以,
<强> 1 即可。使用sleep
示例sleep 5
等待5秒
<强> 2 即可。使用
更改水豚中的默认等待时间 `Capybara.default_wait_time = some_value`