【12期测试开发】appium 企业微信实战(二)课程贴

参考链接


http://appium.io/docs/en/writing-running-appium/caps/

上节课作业讲解

  • 利用setup_class ,setup 方法,实现driver的利用,和提升运行速度
  • 层级关系定位复杂元素

常用端口解析

  • 4723
    appium server 默认端口,多设备运行的时候,需要指定这个端口

  • 5037
    adb server 端口

  • 7555
    mumu 模拟器端口,不同的模拟器端口不一样,需要在官方查看

  • 8200
    appium server 与手机端交互的端口

image

image

DesireCapability 高级用法

元素定位

常用的定位方式

  • Id 定位(优先级最高)

  • Accessibility ID 定位(其次)

  • XPath 定位(速度慢,定位灵活)

  • Uiautomator 定位(速度快,语法复杂)专门针对Android

  • iOSNsPredicateString 针对 iOS

WebDriver源码分析

from appium import webdriver 

点击webdriver 查看源代码,分析继承关系:

appium driver <- activities <- selenium remote webdriver

PO 设计模式

  • Page对象:完成对页面的封装
  • Driver对象:完成对web、android、ios、接口的驱动
  • 测试用例:调用Page对象实现业务并断言
  • 数据封装:配置文件和数据驱动
  • Utils:其他功能封装,改进原生框架不足

PO 企业微信实战

find 封装

 def find(self, locator, value: str = None):
        logging.info(locator)
        logging.info(value)
        element: WebElement
        try:
            element = self._driver.find_element(*locator) if isinstance(locator, tuple) else self._driver.find_element(
                locator, value)
            # if isinstance(locator, tuple):
            #     element =  self._driver.find_element(*locator)
            # else:
            #     element = self._driver.find_element(locator,value)
            # 找到之前 _error_num 归0
            self._error_num = 0
            # 隐式等待回复原来的等待,
            self._driver.implicitly_wait(10)
            return element
        except Exception as e:
            # 出现异常, 将隐式等待设置小一点,快速的处理弹框
            self._driver.implicitly_wait(1)
            # 判断异常处理次数
            if self._error_num > self._max_num:
                raise e
            self._error_num += 1
            # 处理黑名单里面的弹框
            for ele in self._black_list:
                logging.info(ele)
                elelist = self._driver.find_elements(*ele)
                if len(elelist) > 0:
                    elelist[0].click()
                    # 处理完弹框,再将去查找目标元素
                    return self.find(locator, value)

            raise e

课上练习

课间练习

  • 企业微信添加联系人,添加多个联系人

课后作业

关闭