webdriver 等待方法

来源:互联网 发布:phpcms和帝国cms 编辑:程序博客网 时间:2024/06/05 08:11

1. time.sleep()  

from selenium import webdriverimport timedriver=webdriver.Firefox()driver.get('http://www.baidu.com')    #打开百度time.sleep(3)  #time.sleep(3)的意思是当前线程等待3秒后,在执行后面的代码,因此当无法找到元素时不会等待会立即报错driver.find_element_by_id('kw1')driver.quit()

2.implicitly_wait()
from selenium import webdriverdriver=webdriver.Firefox()driver.get('http://www.baidu.com')    #打开百度driver.implicitly_wait(10)    #定义当前句柄查找元素的时间,每个元素都会默认等待10s,如果10s内,没有查询到元素,则报出异常,停止运行driver.find_element_by_id('kw1').send_keys('aaa')driver.quit()

3.WebDriverWait()

3.1 until()

from selenium import webdriverfrom selenium.webdriver.support.ui import WebDriverWaitimport timedef find_element(driver, timeout, func):    return WebDriverWait(driver, 10).until(func, 'element not found')driver=webdriver.Firefox()driver.get('http://www.baidu.com')    #打开百度element=find_element(driver, 10, lambda driver: driver.find_element_by_id('kw1'))#定义元素的查找时间,等待10s,如果10s内,没有查询到元素,则报出异常,异常信息为:element not found,停止运行,如果查询到元素,则返回元素element.send_keys('aaa')time.sleep(3)driver.quit()

3.2 not until()

from selenium import webdriverfrom selenium.webdriver.support.ui import WebDriverWaitimport timedef find_element(driver, timeout, func):    return WebDriverWait(driver, 10).until_not(func, 'element is found')driver=webdriver.Firefox()driver.get('http://www.baidu.com')    #打开百度print(find_element(driver, 10, lambda driver: driver.find_element_by_id('kw1')))#定义元素的查找时间,等待10s,如果10s内,查询到元素,则报出异常,异常信息为:element is found,停止运行,如果没有查询到元素,则返回Truetime.sleep(3)driver.quit()

原创粉丝点击