Python webdriver API(六)设置等待时间

2017-08-01  本文已影响63人  qianyewhy

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

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

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

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

1、WebDriverWait()方法

运行结果

WebDriverWait()

详细格式如下:

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

driver - WebDriver 的驱动程序(Ie, Firefox, Chrome 或远程)

timeout - 最长超时时间,默认以秒为单位

poll_frequency - 休眠时间的间隔(步长)时间,默认为0.5 秒

ignored_exceptions - 超时后的异常信息,默认情况下抛NoSuchElementException 异常。

WebDriverWait()会配合until()和until_not()方法一起使用,根据判断条件而进行灵活进行处理时间等待问题,他会不断的根据你设定的条件去判断,直到超过你设置的等待时间,如果设置的条件满足,然后进行下一步操作,如果没有满足会报一'selenium.common.exceptions.TimeoutException: Message: '错误 

下面是unit()和until_not()方法的说明。

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

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

lambda表达式是起到一个函数速写的作用。允许在代码内嵌入一个函数的定义。

简单使用:http://www.cnblogs.com/alan-babyblog/p/5163408.html

2、implicitly_wait()方法和sleep()方法

运行结果:

sleep()

sleep()方法以秒为单位,假如休眠时间小时1 秒,可以用小数表示。

implicitly_wait()

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

本文参考:《selenium自动化实战基于Python》

http://www.cnblogs.com/mengyu/p/6972968.html

上一篇下一篇

猜你喜欢

热点阅读