Help us learn about your current experience with the documentation. Take the survey.

等待机制

所有 Capybara 节点查找器都利用了一种等待机制。

根据 Capybara API -

如果驱动程序能够执行 JavaScript,find 会等待一个设定的时间,并持续尝试查找该元素,直到找到该元素或时间耗尽。find 的等待时长由 Capybara.default_max_wait_time 控制,默认为 2 秒。find 接受与其他方法相同的选项。

理想情况下,GitLab QA 框架 应该实现其自身的显式等待,以避免使用硬性休眠(hard sleeps),但目前情况并非如此 (not the case)。

硬性休眠

qa/qa/page/base.rb

def wait(max: 60, time: 0.1, reload: true)
  ...
end
  • max : 指定等待的最长时间(秒),直到给定的代码块(block)满足条件
  • time : 休眠的间隔/轮询时间()。如果这个时间达到了 max,等待操作将返回 false
  • reload : 如果等待未满足条件,当 :reload 设置为 true 时,测试将休眠,然后重新加载页面