javascript - Capybara 等待页面用 Ruby 完全加载所有元素

标签 javascript ruby-on-rails ruby web-scraping capybara

经过长时间无用的搜索,我想问以下问题:

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/

相关文章:

javascript - 获取具有相同数据属性的最后一个 div

javascript - "namespace is undefined"使用jsTestDriver、Idea 9并测试3个测试用例时出现问题。有时它会直接挂起

javascript - 按键时的动态搜索结果

ruby-on-rails - 我在 ruby​​ 1.8.7 上有一个新的 Rails 3 应用程序,迁移到 1.9 有何影响?

ruby - 学习 Ruby Curses

javascript - 处理按键事件时,我的输入字段中插入了双字符

ruby-on-rails - PostgreSQL 版本 13 psql : error: could not connect to server: could not connect to server: No such file or directory

ruby-on-rails - 在 rails 模型中创建 before_create

ruby - 使用 autoload 与 ruby​​ 中的 require 进行惰性评估?

ruby-on-rails - Ruby on Rails, Controller 中的两个 View 显示相同的输出,但具有不同的 html 代码