20200614_20三类等待

课程回顾:

元素操作,讲解了各类元素在执行时需要注意的操作行为

Iframehandles

1. QQ登录的切换:iframe,需要先切换iframe再操作元素点击行为

2. 容易出现元素有时候能够正常操作,有时候无法操作

考虑是否添加有等待函数

三类等待:

在实际自动化测试过程中,所有基于Python实现的自动化操作都是机器自主行为,不会去考虑你所需要执行的业务是什么。只是按部就班执行代码

为了确保自动化执行成功率,就需要人工干预,通过其他手段确保能够正常地依照我自己的想法来走

机器执行的时候,是不会停的,所以需要通过等待的手段让它适当的时候进行停止,这个过程叫做等待设置

等待总计分为三类:

强制等待

time.sleep(6)

不考虑任何情况,当代码执行到这一步时,依据sleep传递的时间参数进行对应时间的等待

优势:可以快速实现,只需要通过导入time.sleep模块即可直接调用运行,是非常简单上手的一种等待形式

劣势:会非常浪费时间

不推荐使用此类等待

隐式等待

偷偷摸摸的等待,是由Webdriver提供的一种等待模式:全局变量,对当前的整个driver生命周期都生效,直到driver.quit之后,等待失效

当需要定位元素,定位不到时,会继续进行等待,一直到等待到元素或者设置的等待时间到期为止。

优势:只需定义一次,一直可用

劣势:相对比较耗费资源,从而影响了整个的运行周期,没有办法对元素进行更为精准的操作等待,影响到自动化测试的效率

显式等待:

是唯一的一种专门针对特定的条件而设置的等待,一般是针对特定元素来执行

untiluntil_not两者的概念是相反的。

untile是直到什么条件为true的时候,表示正确

until_not是知道什么条件为false的时候,表示正确

当显式等待执行时,可以用于判断页面元素是存在的/不存在的

优势:可以精准地定位到指定的元素,不会耗费多余的任意力气

劣势:只能对单一的元素生效,每次需要使用的时候,就需要进行调用,类似于强制等待

显式等待默认会返回WebElement对象,意味着可以基于显式等待来做页面内容展示的判断

实际应用:

一般而言,三类等待手段结合使用

当显式等待与隐式等待结合使用时,等待时间取最长的那个

 

课后作业:

基于添加购物车流程,将其中的强制等待全部取消,依照三类等待的操作来实现流程的自动化的优化

再结合等待操作判断添加购物车是否成功

 

posted @ 2020-12-07 20:47  Murraya  阅读(95)  评论(0编辑  收藏  举报