web自动化测试的三种等待方式

自动化测试的三种等待方式

隐式等待

    关键方法 通过driver对象调用implicitly_wait()方法 设置超时时间 作用 在设置了超时时间里,后续的所有元素定位方法都会在这个时间内等待元素的出现。 他会等待页面全部加载完进行定位我们需要的元素,会浪费不必要的时间 如果元素出现了,直接进行下一步操作 如果没有出现,报错 NoSuchElementException

显式等等

    关键方法 关键字:WebDriverWait 方法:WebDriverWait对象的until方法 作用 在设置了显式等待之后,可以等待一个超时时间,在这个超时时间之内进行查找,默认0.5s找一次(频率可以设置) -无须等待页面全部加载完毕,只要 找到这个元素,就会直接进行后续操作 没有找到,报错 TimeOutException

强制等待

    sleep 能做元素的等待,可以调试的时候看结果,真正用的时候不推荐,会造成时间上的浪费

怎么选择隐式和显式等待呢

    现在代码底层都会封装,所以不存在哪种写起来方便的问题,一次封装,就解决了这个问题 显式等待,可以针对每一个元素进行单独的设置 隐式等待,针对全局的元素定位
def web_el_wait(self, locate_type, value):
        return WebDriverWait(self.driver, 10, 0.5).until(
            lambda el:self.locate(locate_type, value), message=元素查找失败
        )
经验分享 程序员 微信小程序 职场和发展