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) 编辑 收藏 举报