(8)等待页面元素消失、出现封装

该代码段定义了两个方法,`element_disappear`和`element_appear`,用于自动化测试中等待页面元素消失和出现。这两个方法都基于`webdriver`,通过指定定位类型和表达式,设置超时时间来判断元素的显示状态。如果元素在规定时间内未出现或消失,会抛出相应异常。
摘要由CSDN通过智能技术生成

封装 OBjectMap.py工具类
在这里插入图片描述

三、等待页面元素消失

思路流程图
在这里插入图片描述

 def element_disappear(self,driver,locate_type,locator_expression,timeout=30):
        """
        等待页面元素消失
        :param driver:浏览器驱动
        :param locate_type:定位类型
        :param locator_expression:定位表达式
        :param timeout:超时
        :return:
        """
        if locate_type:
            start_ms = time.time() * 1000  # 开始时间 获取当前时间戳
            stop_ms = start_ms + (timeout * 1000)  # 结束时间
            for x in range(int(timeout*10)):
                try:
                    element=driver.find_element(by=locate_type,value=locator_expression)
                    if element.is_displayed():#如果元素可见
                        now_ms=time.time()*1000
                        if now_ms>=stop_ms:#判断是否在等待时间内
                            break
                        time.sleep(0.1)
                except Exception: #元素不可见,则ture
                    return True
            raise Exception("元素有消失,定位方式:"+locate_type+"定位表达式:"+locator_expression)
        else:
            pass

四、等待页面元素出现

等待页面元素消失思路流程图
在这里插入图片描述

def element_appear(self,driver,locate_type,locator_expression,timeout=30):
        """
        等待页面元素出现
        :param driver:
        :param locate_type:
        :param locator_expression:
        :param timeout:
        :return:
        """
        if locate_type:
            start_ms = time.time() * 1000  # 开始时间 获取当前时间戳
            stop_ms = start_ms + (timeout * 1000)  # 结束时间
            for x in range(int(timeout*10)):
                try:
                    element=driver.find_element(by=locate_type,value=locator_expression)
                    if element.is_displayed():#如果元素可见,啧返回元素
                        return element
                    else:#否则抛出异常
                        raise Exception()
                except Exception:#在超时时间内继续循环
                    now_ms = time.time() * 1000
                    if now_ms >= stop_ms:
                        break #退出循环
                    time.sleep(0.1)
                    pass
            raise ElementNotVisibleException("元素没有出现,定位方式:"+locate_type+"定位表达式:"+locator_expression)
        else:
            pass
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值