selenium2-python08-设置等待时间

有时候为了保证脚本运行的稳定性,需要脚本中添加等待时间。

sleep():设置固定休眠时间。pythontime包提供了休眠方法sleep() ,导入time包后就可以使用sleep()进行脚本的执行过程进行休眠。

implicitly_wait():是 webdirver 提供的一个超时等待。隐的等待一个元素被发现,或一个命令完成。 如果超出了设置时间的则抛出异常。

WebDriverWait():同样也是 webdirver 提供的方法。在设置时间内,默认每隔一段时间检测一次当前 页面元素是否存在,如果超过设置时间检测不到则抛出异常。 

driver.get()
element =WebDriverWait(driver).until(driver : driver.find_element_by_id())
element.send_keys()

driver.implicitly_wait()
driver.find_element_by_id().click()

time.sleep()




driver.quit()

implicitly_wait()

implicitly_wait()方法比 sleep() 更加智能,后者只能选择一个固定的时间的等待,前者可以在一个时间 范围内智能的等待。

WebDriverWait()

详细格式如下:

WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None)
driver -
WebDriver 的驱动程序(Ie, Firefox, Chrome 或远程)
timeout - 最长超时时间,默认以秒为单位
poll_frequency - 休眠时间的间隔(步长)时间,默认为 0.5
ignored_exceptions - 超时后的异常信息,默认情况下抛 NoSuchElementException 异常。 

实例:

from selenium.webdriver.support.ui import WebDriverWait
....
element = WebDriverWait(driver, 10).until(lambda x: x.find_element_by_id(“someId”))
is_disappeared = WebDriverWait(driver, 30, 1, (ElementNotVisibleException)).

           until_not(lambda x: x.find_element_by_id(“someId”).is_displayed())



WebDriverWai()一般由 unit()until_not()方法配合使用,下面是 unit()until_not()方法的说明。

until(method, message=’ ’)
调用该方法提供的驱动程序作为一个参数,直到返回值不为 False
until_not(method, message=’ ’)

调用该方法提供的驱动程序作为一个参数,直到返回值为 False。 



你可能感兴趣的:(selenium2-python08-设置等待时间)