Ruby on rails Rspec、水豚、硒、铬、无头。提交远程表单后等待响应
使用中 Rails 6,RspecRuby on rails Rspec、水豚、硒、铬、无头。提交远程表单后等待响应,ruby-on-rails,rspec,capybara,Ruby On Rails,Rspec,Capybara,使用中 Rails 6,RspecRspec Rails(3.9.0),CapybaraCapybara(3.31.0),selenium\u chrome\u headless 我尝试使用remote:true提交ajax表单。我怎样才能等待答复 现在工作sleep0.2,但我真的不喜欢这种方法 我找到了另一种方法: Timeout.timeout(Capybara.default_wait_time) do loop do active = page.evaluate
Rspec Rails(3.9.0)
,CapybaraCapybara(3.31.0)
,selenium\u chrome\u headless
我尝试使用remote:true
提交ajax表单。我怎样才能等待答复
现在工作sleep0.2
,但我真的不喜欢这种方法
我找到了另一种方法:
Timeout.timeout(Capybara.default_wait_time) do
loop do
active = page.evaluate_script('jQuery.active')
break if active == 0
end
end
但它不起作用
我的记录应在请求后消失:
expect(page).to_not have_content('User name')
有什么建议吗?感谢您的帮助当请求完成时,您应该为页面中的任何可见更改设置期望值。如果这意味着当请求完成时,文本“用户名”从页面中消失,那么您期望
expect(page).not_to have_content('User name')
或
将等待,直到该内容(与have_text相同)在页面上不再可见(直到Capybara.default_wait_时间秒),这意味着请求已完成。如果该文本多次出现在页面上,并且仅从一个位置删除,那么您可以使用
have_content
中的计数选项,或者将您的无内容预期范围设置为要删除文本的页面的特定部分。@OlegSobchuk可以这样做。假设您已正确安装了Capybaras Rspec matchers(您正在使用的应用程序或gems中的某个地方出现了“capybara/Rspec”要求),则。拥有\u no \u content
和.not \u to have \u content`在功能上应该是等效的。
expect(page).to have_no_content('User name')