2012-06-01 61 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'的條件。