顯性等待:
wait = Selenium::WebDriver::Wait.new(:timeout => 3)
wait.until { driver.find_element(:id => "cheese").displayed? }
隱性等待:
driver = Selenium::WebDriver.for :firefox
driver.manage.timeouts.implicit_wait = 3 # seconds
內部超時:
WebDriver在內部使用http協議與各種driver發生互動聯絡。預設情況下,Ruby標準庫中的Net::HTTP協議使用時有60秒預設超時時間,如果你呼叫Driver去載入一個超過60秒時間的頁面,你會看到一個來自於Net:HTTP的超時錯誤。你可以在啟動瀏覽器前手動配置超時時間。
client = Selenium::WebDriver::Remote::Http::Default.new
client.timeout = 120 # seconds
driver = Selenium::WebDriver.for(:remote, :http_client => client)