zoukankan      html  css  js  c++  java
  • 自动化测试常用脚本-等待某个元素是否显示

    在 UI 自动化测试中,由于会经常碰到页面加载较慢,导致元素可能识别不到的情况,因此,需要封装一个函数,动态的判断某个元素是否加载完成,才能继续
    进行下一步操作,如下例子

    
    from selenium.webdriver.support.wait import WebDriverWait
    from selenium import webdriver
    
    '''等待元素加载完毕'''
    dr = webdriver.chrome()
    def wait_element_is_displayed(self, element, way="id", wait_time=10):
        """
         在10秒内,每隔1秒就判断元素是已经显示
        :param attribute: 定位的元素
        :param way: 定位的方式,默认使用 id 定位
        :param wait_time: 等待的时间,默认10秒
        return: 找到返回 True,找不到则返回 False
        """
        try:
            if way == "id":
                WebDriverWait(self.dr, wait_time, 1).until(lambda x: x.find_element_by_id(element).is_displayed())
            elif way == "xpath":
                WebDriverWait(self.dr, wait_time, 1).until(lambda x: x.find_element_by_xpath(element).is_displayed())
            elif way == "name":
                WebDriverWait(self.dr, wait_time, 1).until(lambda x: x.find_element_by_name(element).is_displayed())
            return True
        except Exception:
            return False
    

    使用方式:

    def test_wait_element_is_displayed(self):
        # 使用 id 判断 
        self.wait_element_is_displayed("password")
        # 使用 name 判断 
        self.wait_element_is_displayed("element", way="name")
        # 使用 xpath 判断   
        xp = ".//input[@name='password']"
        self.wait_element_is_displayed(xp, way="xpath")
    

    以上只是使用了 id,name,xpath 这三种方式进行定位,其他定位方式可根据测试场景需要进行扩展

  • 相关阅读:
    Jquery 表单批量验证
    学习总结 本科学习生涯
    学习总结 大学英语四六级
    学习总结 普通话等级考试
    学习总结 NCRE二级和三级
    oracle程序块
    正则表达式
    redis常用命令
    FaaS 基于多租户技术 SaaS平台设计
    量化交易之网格情缘
  • 原文地址:https://www.cnblogs.com/chenri/p/12940605.html
Copyright © 2011-2022 走看看