经过长时间无用的搜索,我想问以下问题:
1。在 Capybara 返回 {"status"=> "success"} 之后会发生什么?是不是等到所有元素都加载完毕(比如JS等)?或者它只是处理 HTTP 200 响应并将其发回而不关心?
2。除了设置超时时间,还有什么其他方法可以让 capybara 等待页面完全加载所有元素和功能吗?
例如,有什么方法可以告诉 Capybara:“在访问特定页面时是否执行了 JS?”或者“页面加载完成了吗?”。
我会很感激任何想法,谢谢!
最佳答案
visit
行为依赖于驱动程序,并且不能保证页面在返回时已完全加载(无论您如何定义完全加载)。 Capybara 中的等待方法是那些等待特定元素的方法。所以
find(:css, '#blah')
将等待(最多 Capybara.default_max_wait_time 秒)id 为“blah”的元素出现在页面上。如果您对正在访问的页面的结构以及您希望页面上包含哪些元素一无所知,那么唯一的方法就是通过超时。
关于javascript - Capybara 等待页面用 Ruby 完全加载所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45858810/