ruby webdriver 显性等待、隐性等待、内部超时处理

显性等待:

 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)

 

posted on 2012-10-12 16:48  tim_sheng  阅读(1956)  评论(0编辑  收藏  举报

导航