css - 让 Watir 等待所有第 3 方脚本加载完毕

标签 css ruby rspec watir watir-webdriver

问题

自从更改一些 CSS 以从 Googlefonts 加载字体后,我发现在本地运行时,我们的 Watir 测试偶尔会失败,因为它们正在等待 Googlefonts 加载,而我们的连接已挂起或正在等待。

因为这是一个 CSS 加载问题,页面的所有元素都是可访问的,所以我不能使用像 wait_until_present 这样的东西,因为这些东西存在,但是 Watir 出于某种原因不存在想和它一起玩。

我不想更改我的 Assets 管道以在本地测试时不加载这些东西,因为这违背了完整性测试的目的。

我尝试过的

我试过传递类似的东西;

browser.wait.until do
  window_loaded = browser.execute_script '$(window).load(function() { return true; });'
  window_loaded == true
end

但我无法让它工作,而且我不相信这是解决这个问题的正确方法。

最佳答案

取自:http://watirwebdriver.com/waiting/

require 'watir-webdriver'
b = Watir::Browser.start 'bit.ly/watir-webdriver-demo'
b.select_list(:id => 'entry_1').wait_until_present
b.text_field(:id => 'entry_0').when_present.set 'your name'
b.button(:value => 'Submit').click
b.button(:value => 'Submit').wait_while_present
Watir::Wait.until { b.text.include? 'Thank you' }

你也可以使用:

sleep 2

我个人使用 sleep 等待所有内容加载完毕。与 AJAX 一起工作得很好。

关于css - 让 Watir 等待所有第 3 方脚本加载完毕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18570949/

相关文章:

html - div不适用于整个表格

html - 更改输入 `type=search` 中清除按钮 (x) 的颜色

ruby-on-rails - RSpec 异常后继续

ruby - 调用 RSpec sleep

javascript - 如何对齐文本旁边的复选框

php - 如何在wordpress中突出显示当前菜单

ruby-on-rails - Authlogic 忽略密码参数

windows - 在 Windows 上启动 Sinatra 应用程序时,shotgun gem 会爆炸

ruby-on-rails - 三元运算符 ruby

ruby-on-rails - 如何使用 Rspec 正确显示双引号的 ""