显性等待:
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)