Comment utiliser Watir :: Waiter :: wait_until pour forcer Chrome à attendre?

Je suis en train de dire à mon watir script à attendre un ajax-injecté boîte de connexion pour ouvrir. Je suis à l'aide de watir-webdriver, et les essais en Chrome. Je ne peux pas obtenir wait_until de travail, comme indiqué dans le ci-dessous (simplifié) de script.

require "rubygems"
require "watir-webdriver"
b = Watir::Browser.new(:chrome)
site = "www.example.com"
b.goto site

puts "Click on Sign In button"
b.link(:id, 'btnLogin').click

puts "Waiting for the username/password dialog to show up"

# Below line does *not* work
# Throws this error: "uninitialized constant Watir::Waiter (NameError)" 
Watir::Waiter::wait_until { b.text_field(:id, 'username').exists? }

# Below line does *not* work
# Throws this error: "undefined method `wait_until' for main:Object (NoMethodError)" 
wait_until { b.text_field(:id, 'username').exists? }

# Below line *does* work, but I don't want to use it.
sleep 1 until b.text_field(:id, 'username').exists?

Est Watir::Waiter un IE en salle de classe? Ou ce que je fais mal, le sleep 1 attendre méthode fonctionne très bien. Je suis nouveau sur le Rubis et le watir, j'ai juste pris ce jusqu'à hier, donc je suis à moitié attend à ce que ceci soit un résultat de mon noobaciousness.

Dans le cas où il est pertinent, je suis en train de travailler sur un mac (OSX v. 10.6.5).

source d'informationauteur karim79