为什么 javascript 没有选中我的复选框?
Why is javascript not checking my checkbox?
我正在尝试测试一个简单的 header 复选框检查 table 中的所有复选框。
测试如下:
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
有效。
我测试了其他几个选择器,它们几乎都具有相同的效果。我不想添加睡眠语句来让这样的事情通过。我一定是做错了什么。
当我 运行 没有睡眠子句的测试时,它似乎找到了控件(它被突出显示),但它没有被检查。请参阅屏幕截图了解我的意思。
我的问题是为什么会这样,我该如何解决我的问题?
注意我使用的是 rails 4.2.4 和水豚 2.5.0
经过进一步调查,该错误实际上是由将 selenium-webdriver 从版本 2.45.0 升级到 2.48.1 引起的。我没有足够的时间调查 gem.
中的根本原因
您必须等到水豚执行点击操作。
所以,
1。使用 sleep
示例 sleep 5
等待 5 秒
2。使用
更改水豚的默认等待时间
`Capybara.default_wait_time = some_value`
我正在尝试测试一个简单的 header 复选框检查 table 中的所有复选框。
测试如下:
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
有效。
我测试了其他几个选择器,它们几乎都具有相同的效果。我不想添加睡眠语句来让这样的事情通过。我一定是做错了什么。
当我 运行 没有睡眠子句的测试时,它似乎找到了控件(它被突出显示),但它没有被检查。请参阅屏幕截图了解我的意思。
我的问题是为什么会这样,我该如何解决我的问题?
注意我使用的是 rails 4.2.4 和水豚 2.5.0
经过进一步调查,该错误实际上是由将 selenium-webdriver 从版本 2.45.0 升级到 2.48.1 引起的。我没有足够的时间调查 gem.
中的根本原因您必须等到水豚执行点击操作。
所以,
1。使用 sleep
示例 sleep 5
等待 5 秒
2。使用
更改水豚的默认等待时间 `Capybara.default_wait_time = some_value`