zoukankan      html  css  js  c++  java
  • selenium自定义find_element

    智能轮询元素是否显示:

    def isDisplayTimeOut(self,element,timeSes):
        """
        在指定时间内,轮询元素是否显示
        :param element: 元素对象
        :param timeSes: 轮询时间
        :return:
        """
        start_time = int(time.time()) #秒级时间戳
        timeStr = int(timeSes)
        while (int(time.time())-start_time) <= timeSes:
            if element.is_displayed():
                return True
            self.wait(500)
        return False

    查找元素:

    def find_element(self,*loc):
        """
        在指定时间内,查找元素;否则抛出异常
        :param loc: 定位器
        :return: 元素 或 抛出异常
        """
        TimeOut = 20
        try:
            self.driver.implicitly_wait(TimeOut) #智能等待;超时设置
    
            element = self.driver.find_element(*loc) #如果element没有找到,到此处会开始等待
            if self.isDisplayTimeOut(element,TimeOut):
                self.hightlight(element)  #高亮显示
            else:
                raise ElementNotVisibleException #抛出异常,给except捕获
    
            self.driver.implicitly_wait(0) #恢复超时设置
            return element
    
        except (NoSuchElementException,ElementNotVisibleException) as ex:
            self.getImage
            raise ex
    
    
    
    

    高亮显示:

    def hightlight(self,element):
        """
        元素高亮显示
        :param element: 元素对象
        :return: 无
        """
        self.driver.execute_script("arguments[0].setAttribute('style', arguments[1]);",
                                   element, "border: 2px solid red;")
    
    
    




     期待你的加入;共同学习,一起进步:
    
    
    python|测试|技术交流 qq群:563227894
    
    
    python|测试|技术交流 qq群:563227894
    
    
    python|测试|技术交流 qq群:563227894
    
    
  • 相关阅读:
    移动应用跨平台之旅
    ReactNative之坑爹的在线安装
    关于拆箱装箱引发的类型转换报错
    Unity HDR (高动态范围 )
    Instruments如何看Mono内存分配
    Unity编辑器崩溃大全
    Unity3D获取手机存储空间
    关于构建AssetBundle哈希冲突的问题
    关于UnityWebRequest的超时讨论
    Wwise音频插件介绍
  • 原文地址:https://www.cnblogs.com/yhleng/p/9295188.html
Copyright © 2011-2022 走看看