1 隐式等待
隐世等待在自动化实施过程中,为查找页面元素或者执行命令设置一个最长等待时间,如果在规定时间内页面元素被找到或者命令被执行完成,则执行下一步,否则等到最长等待时间截止。
self.drvier.implocityly_wait(10)来设置隐式等待。
优点:不用强制等待,可以在一定程度上提升测试用例的执行效率。
缺点:就是程序会一直等待整个页面加载完成,也就是说浏览器窗口标签不再出现转动的小圆圈,才会继续执行下一步,比如某些时候想要的页面元素早就加载完成,但由于个别js等资源加载稍慢,此时程序仍然会等待页面全部加载完成才会继续执行下一步,这样就会加长测试用例时间。
注意:隐式等待只需要被设置一次,然后将在driver的整个生命周期都起作用。
2 显式等待
显示等待比隐式等待更节约测试脚本执行时间,推荐尽量使用显式等待来判断页面元素是否存在。
工作原理:
程序每隔一段时间(该时间一般都很短,默认为0.5秒,也可以自定义)执行一下自定义的判定条件,如果条件成立,就执行下一步,否则继续等待,直到超过设定的最长等待时间,然后抛出TimeoutException异常。
设置实例:
#等待10秒,直到找的按钮出现
element=WebDriver(driver,5)
等等很懂显示等待中期望的场景