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)
当然,问题是表单在检查第二个断言之前提交.是否有任何方法可以禁用表单的实际提交,或者在检查第二个断言之后暂停它?
我记得有同样的问题,但从未找到一个好的方法来做到这一点,因为正如您所说,只有在“审核”操作完成时它才会到达下一个断言。
考虑到该按钮执行的操作需要很长时间(因此证明禁用该按钮是合理的),我最终所做的就是使该操作创建一个延迟作业作业,然后让它异步运行。然后很容易模拟它并让它休眠几秒钟(或者你有什么)来检查按钮是否被禁用。