2012-06-01 2 views
0

Je souhaite attendre que DOM soit stable et que la page soit compilée jusqu'à ce que j'essaie d'exécuter la méthode click() Selenium WebDriver.API Python Selenium 2 et attendre que le DOM soit prêt/l'élément soit visible

Depuis Selenium 2, il ne semble plus exister de stock stock_for(). Quelle est la meilleure pratique pour "attendre 15 secondes ou jusqu'à ce que l'élément soit cliquable" comportement de style avec Selenium et Python 2?

+0

connexes http://stackoverflow.com/questions/9823272/python-selenium-waiting-for-frame-element-lookups – jfs

Répondre

1

Ceci est en rubis, je suis sûr qu'il peut être fait en Python et

@wait = Selenium::WebDriver::Wait.new(:timeout => 30) 
#You can define as many as you want with various times 
@wait_less = Selenium::WebDriver::Wait.new(:timeout => 15) 
#and then 
@wait.until { @driver.find_element(:id, "Submit") } 
@driver.find_element(:id, "Submit").click 

Remarque - Vous pouvez attendre quoi que ce soit. d'autres exemples

@wait.until {@driver.window_handles.size > 1} 

ou

@wait_less.until {@driver.find_element(:tag_name => "body").text.include?("Some text")} 
+0

Merci. Cela m'a mis sur la bonne voie: http://selenium.googlecode.com/svn/trunk/docs/api/py/webdriver_support/selenium.webdriver.support.wait.html#module-selenium.webdriver.support.wait –

2

Ce que vous cherchez est attend explicitement. La documentation Selenium explique plus loin comment fonctionne explicit waiting.

Vous pouvez trouver différents types de expected conditions ici. La condition qui vous intéresse le plus est celle appelée «visibility_of».

Questions connexes