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
Vous devez vous connecter pour publier un commentaire.
Ce faire:
Puis essayez ces:
1
2
3
Note que "présent" signifie ici "l'élément à la fois existe et est visible".
Vous pouvez également définir un timeout avec navigateur.il faudra attendre pour lui de 700 secondes, comme ça.
Je rencontre le même problème il ya quelques semaines.
Le point est que Watir::Attendre.jusqu'à ce que{} attend qu'une SEULE page à charger (testé principalement sur Firefox).
Si vous avez un peu de code JavaScript pour le chargement des autres composants, ce ne sont pas attendu.
Alors, la seule solution est de choisir et de l'élément et explicitement attendre qu'il apparaisse (à l'aide de méthodes 2 & 3).