codecamp

selenium2 隐式 waits

当我们要找一个或者一些不能立即可用的元素的时候,隐式​waits​会告诉​WebDriver​轮询​DOM​指定的次数,默认设置是0次。一旦设定,​WebDriver​对象实例的整个生命周期的隐式调用也就设定好了。

from selenium import webdriver

driver = webdriver.Firefox()
driver.implicitly_wait(10) # seconds
driver.get("http://somedomain/url_that_delays_loading")
myDynamicElement = driver.find_element_by_id('myDynamicElement')

关于显示和隐式的选择:始终使用显式等待。忘记隐式等待的存在

 显式waits的特点: 隐式waits的特点:  
 具有明确的行为表现 不具有明确的行为表现,同一个问题在不同的操作系统、不同的浏览器、不同的selenium版本会有各种不同的表现
 在本地的selenium运行(你选择的编程语言) 在远程的selenium上运行(控制浏览器的那部分)
 可以在任何你能想到的条件下工作 只能在寻找元素的函数上工作
返回成功或者超时 返回找到元素或者(在超时以后)没有找到 
 可以定义元素的缺失为条件 如果检查元素缺失那么总是会等待到超时 
可以定制重试间隔,可以忽略某些异常
  除了时间啥都不能指定
selenium2 显式 waits
selenium2 页面对象
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }