美文网首页
Python webdriver API(六)设置等待时间

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

作者: qianyewhy | 来源:发表于2017-08-01 17:08 被阅读63次

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

    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

    相关文章

      网友评论

          本文标题:Python webdriver API(六)设置等待时间

          本文链接:https://www.haomeiwen.com/subject/duejlxtx.html