ruby webdriver 顯性等待、隱性等待、內部超時處理

weixin_30924079發表於2020-04-04

顯性等待:

 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)

 

轉載於:https://www.cnblogs.com/timsheng/archive/2012/10/12/2721594.html

相關文章