WebDriverWait

def test():
    #打开浏览器
    driver = webdriver.Firefox()
    driver.get('http://www.baidu.com')
    #显示等待
    element = WebDriverWait(driver,5,0.5).until(ec.presence_of_all_elements_located((By.ID,"kw")))
    driver.find_element_by_id("kw").send_keys("selenium")


显示等待需要用到两个类:

WebDriverWait和expected_conditions两个类。

1、WebDriverWait(driver,timeout,poll_frequency=0.5,ignored_exceptions=None)

属性
driver:浏览器驱动
timeout:最长超时时间,默认以秒为单位
poll_frequency:检测的间隔步长,默认为0.5s
ignored_exceptions:超时后的抛出的异常信息,默认抛出NoSuchElementExeception异常。
WebDriverWait()一般由until()或until_not()方法配合使用,下面是方法说明 :

until(method,message=”) 
method: 在等待期间,每隔一段时间(__init__中的poll_frequency)调用这个传入的方法,直到返回值不是False
message: 如果超时,抛出TimeoutException,将message传入异常
until_not(method,message=”) 
 与until相反,until是当某元素出现或什么条件成立则继续执行,
 until_not是当某元素消失或什么条件不成立则继续执行,参数也相同。

2、expected_conditions类

各种类,达到某种条件,返回True和False

常用条件:

                       条件                            说明
presence_of_element_located      判断某个元素是否被加到了DOM树里,并不代表该元素一定可见
visibility_of_element_located     判断某个元素是否可见,可见代表元素非隐藏,并且元素的宽和高都不等于0

 

你可能感兴趣的:(测试)