2012-06-01 86 views
0

我想等到DOM稳定并且页面被构造,直到我尝试执行Selenium WebDriver click()方法。Python Selenium 2 API并等待DOM准备就绪/元素可见

由于硒2似乎不存在股票wait_for()方法了。 Selenium和Python 2的“等待15秒或直到元素可点击”样式行为的最佳做法是什么?

+0

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

回答

1

这是红宝石,我相信它可以在Python做以及

@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 

注 - 您可以等待什么。其他例子

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

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

谢谢。这让我走上了正轨:http://selenium.googlecode.com/svn/trunk/docs/api/py/webdriver_support/selenium.webdriver.support.wait.html#module-selenium.webdriver.support.wait –

2

你正在寻找什么是明确的等待。 Selenium文档进一步解释了explicit waiting的工作原理。

您可以在这里找到不同类型的expected conditions。可能最感兴趣的条件是名为'visibility_of'的条件。