watir-WebDriver attendre chargement de la page

voix
14

L' utilisation watir-WebDriver , comment puis-je attendre une page pour charger après que je clique sur un lien?

En ce moment je fais:

sleep n

Mais ce n'est pas idéal comme la réponse de page varie beaucoup.

Y at - il une méthode pour vérifier si la page est prête ou s'il y a un certain élément de la page. Je comprends dans le petit bijou de watir normal , il est Watir::Waiter.wait_untilou quelque chose de similaire, mais je ne vois pas cela dans la version WebDriver.

Créé 17/08/2010 à 16:47
source utilisateur
Dans d'autres langues...                            


7 réponses

voix
12

Je ne sais pas si elles sont la meilleure façon, mais comment je suis en attente pour la manipulation de ce mise à jour div pour effacer:

while browser.div(:id=>"updating_div").visible? do sleep 1 end

Voilà comment je gérer l'attente de quelque chose à afficher:

until browser.div(:id=>"some_div").exists? do sleep 1 end

Créé 18/08/2010 à 08:40
source utilisateur

voix
7

Le communiqué d'aujourd'hui ajoute une option exige que apporte des aides pour attendre des éléments. Ce ne sont pas (pour le moment) disponible dans Watir 1.6, donc il faut savoir si vous utilisez les deux côtés des bibliothèques côte à côte.

Consultez la page sur AJAX et en attendant des éléments dans le Wiki Watir-WebDriver

Créé 31/08/2010 à 20:44
source utilisateur

voix
1

Voilà comment j'attends AJAX dans mon projet ...

ajax_loader = $b.element(:xpath  => "//*[@id='spinner-modal-transparent' and @aria-hidden='true']/div/div/div/div/img[@alt='Ajax transparent loader']")

if ajax_loader.exists?
  ajax_loader.wait_while_present(timeout=350)
else
  puts "The AJAX loader was not present."
end
Créé 08/08/2017 à 17:29
source utilisateur

voix
1

Le meilleur résumé se trouve ici: http://watirwebdriver.com/waiting/

Ici, il est en un mot:

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' }
Créé 24/07/2014 à 01:19
source utilisateur

voix
1

browser.wait_untilméthode peut être utilisée plus utile que vous le pouvez définir quoi attendre en ()tant quebrowser.wait_until(browser.text.include("some text"))

Créé 05/11/2012 à 12:12
source utilisateur

voix
0

Je rencontre les mêmes problèmes avec vous, et je tente de le réparer en peignant la wait_until_presentméthode et les until browser.div(:id=>"some_div").exists? do sleep 1 endtours par @marc à prévoir couvrent:

some_div = browser.div(:id => 'some_div')

begin 

  Watir::Wait.until
    some_div.visible?
  end

rescue Watir::Wait::TimeoutError

  until some_div.visible?
    sleep 1
  end
end

Et être remarqué qu'il est de votre responsabilité de vous assurer que le div(:id => "some_div") do existe

Créé 25/08/2013 à 05:07
source utilisateur

voix
0

vous pouvez utiliser wait_until ....

ou

méthodes waituntilExists

Créé 27/08/2010 à 13:57
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more