如何在点击capybara后测试被禁用的提交按钮?

Wil*_*tor 6 browser testing ruby-on-rails capybara

我们正在尝试单击禁用某个提交按钮.像这样的东西:

assert !page.has_css?("#review_button[disabled='disabled']")
click_button "Review"
assert page.has_css?("#review_button[disabled='disabled']")
Run Code Online (Sandbox Code Playgroud)

当然,问题是表单在检查第二个断言之前提交.是否有任何方法可以禁用表单的实际提交,或者在检查第二个断言之后暂停它?

MrD*_*anA 1

我记得有同样的问题,但从未找到一个好的方法来做到这一点,因为正如您所说,只有在“审核”操作完成时它才会到达下一个断言。

考虑到该按钮执行的操作需要很长时间(因此证明禁用该按钮是合理的),我最终所做的就是使该操作创建一个延迟作业作业,然后让它异步运行。然后很容易模拟它并让它休眠几秒钟(或者你有什么)来检查按钮是否被禁用。