【就业1期】企业微信移动 app 实战1

标题

app 企业微信实战(一)

课程价值

  • 了解 Appium 框架结构
  • 掌握 Appium 环境搭建
  • 掌握 Appium Inspector 录制及查找元素的使用
  • 掌握 元素定位技巧

大纲

  • Appium 介绍
  • Appium 环境搭建
  • Appium Inspector
  • 元素定位技巧
  • 企业微信实战-打卡

时长

90分钟

PPT

课堂 ppt

https://pdf.ceshiren.com/jy1/appium1/#/

appium框架结构

连接adb

【win版】

adb connect 127.0.0.1:7555
adb devices

真机连接

1、下载 手机助手或者 豌豆夹 自动下载手机驱动
2、打开USB 调试模式

手机设置- 关于- 版本号-连点七下 - 返回 - 打开开发者选项- 打开USB调试模式

获取app的包名、activity

mac:

adb logcat "ActivityManager:I *:s" | grep "cmp"
win:

adb logcat ActivityManager:I *:s | findstr "cmp"

常用定位

//*[contains(@resource-id, ‘login’)](重点)
//*[@text=‘登录’]  (重点)
//*[contains(@resource-id, ‘login’) and contains(@text, ‘登录’)] (重点)

脚本编写

应用

参考链接

appium 环境搭建:Appium 环境搭建( windows 版本 | Mac版本)
sdk 环境 参照:Android Studio安装(推荐使用这种方法安装SDK)

caps 链接

https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/other/reset-strategies.md

https://github.com/appium/appium-uiautomator2-driver#capabilities

代码地址

课后反馈调查表单

待补充

https://github.com/zhanghao-github-python/pythonhomework.git

这行代码理解错啦,appActivity,是启动APP的入口页面

desire_cap["appActivity"] = ".launch.WwMainActivity"  # 被测页面

这行代码的意思是不清空本地缓存,启动app

desire_cap["noReset"] = 'true'

你这样断言肯定不行呀,你是先找text属性,然后又获取了text属性,如果这个元素不存在,在找的时候就直接报错了,而不是在断言的时候报错。建议通过添加成功页面的toast取断言

# 点击后找到邮箱文本值
        email_final = self.driver.find_element_by_xpath(f'//*[@text="{email}"]').text
        # 文本值断言
        try:
            assert  email == email_final
            print('添加成功')
        except Exception as f:
            print(f'添加失败,错误信息是{f}')

生成姓名、手机号这些,有个现成的库 Faker 可以参考下

好的老师,toast暂时没看到,所以没用,我改一下自己的注释和随机数

https://github.com/Ws5668/appium_work/commit/163e24149668872c9c0985d6e89713bf930bfe9e

https://github.com/7QYe/HogwartsWork/tree/master/Hogwarts/test_appium817

https://gitee.com/wuxiheng/wuxiheng-seventh_zuoye