嘗試使用「begin ..ensure」方法單擊element1後,等待元素2出現在網頁上。如果element2不在那裏,我想退出並記錄一個錯誤。但element2出現在幾秒鐘內,但下面的代碼將確保阻止並使驅動程序退出。 不知道是什麼問題。由於事先:ruby selenium-webdriver等待元素「確保」不起作用
$driver.find_element(:id, "element1").click
wait = Selenium::WebDriver::Wait.new(:timeout => 10) # seconds
begin
wait.until {$driver.find_element(:id, "element2")}
ensure
#Logger login error to text error log file
$driver.quit #---------------------------> always goes to ensure and quits
end
$driver.find_element(:id, "element2").click -->> never gets here
謝謝您的回答。在執行下一個陳述之前確保網頁上存在元素的最佳方法是什麼 – user2270832 2013-04-11 16:07:24
Selenium-webdriver內置了等待方法。看看顯式和隱式的等待 - http://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp – 2013-04-11 16:54:23