前言
初学 UI 自动化的小伙伴, 在配置好 appium+python 自动化环境后, 往往不知道如何下手实现自动化. 小编在初期学习的时候也有这种疑惑, 在此以拼多多搜索为实例, 展示下 appium 是如何实现自动化的.
前提: 已安装配置好 appium+python 自动化环境
一, 连接手机启动 App
1, 连接手机
- 手机 USB 连接电脑
- 手机打开开发者模式, USB 调试功能
2, 基础信息配置
基础连接信息如下 (以微信 App 为例):
'platformName': 操作平台
'deviceName': 设备名称
'platformVersion': 系统版本号
'appPackage': apk 包名
'appActivity':apk activity
'noReset': 在此会话之前不要重置应用程序状态, 即非初始化. 参数值: true, false
更多配置参数信息可参考: https://www.cnblogs.com/D666/p/9165086.html
备注: 获取设备号 / App 包名 / activity 详情可查看 https://www.cnblogs.com/mini-monkey/p/11691862.html
3, 启动 appium 服务
1, 启动 appium 获取 appium 服务地址
appium 启动页获取 host 和 port, 默认配置 host:127.0.0.1,port:4723,
即默认 appium 服务地址为: http://127.0.0.1:4723/wd/hub(若配置其他 host&port 更新 http:// 后内容为 host:port 即可)
4, 连接设备, 启动 App
Remote 括号中地址: appium 服务地址 (步骤 3 中获取)
二, 编写搜索脚本
1, 打开定位工具 uiautomatorviewer, 查看元素属性
关于定位工具的可参考:
点击 Android adk->tools->automatorviewer
鼠标选中页面元素, 右下角查看元素属性
2, 定位元素
元素定位方法可参考:,
appium 常用 API 可参考:,
一般元素 id 存在时, 先根据 id 定位, 其次是 class, 然后再是 xpath,uiautomator 等去定位. 优先级不一定是这样的, 小编一般习惯这样定位, 大家可以根据自己的喜好选择定位方式.
拼多多搜索商品过程如下:
首页点击搜索 tab-> 点击搜索框 -> 输入搜索关键词, 点击搜索 btn(进入搜索结果页, 展示搜索结果)
实现搜索自动化便可根据以上步骤展开编写, 拼多多搜索商品脚本如下 (以搜索 T 恤为例):
备注: 由于 App 有的页面加载需要时间, 可在需要等待的地方添加等待时间.
三, 实例代码详情
拼多多搜索商品的总代码如下:
- #appium 拼多多搜索商品实例
- from appium import webdriver
- from time import sleep
- # 基础配置
- desired_caps = {
- 'platformName': 'Android', # 平台
- 'deviceName': "emulator-5554", # 手机设备名称
- 'platformVersion': "6.0.1", # 安卓系统版本号
- 'appPackage': 'com.xunmeng.pinduoduo', # apk 包名
- 'appActivity': 'com.xunmeng.pinduoduo.ui.activity.MainFrameActivity', # apk activity
- 'unicodeKeyboard': True, # 设置编码格式为 unicode
- 'resetKeyboard': True, # 隐藏手机键盘
- 'noReset': True # 非初始化
- }
- driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps) # 启动 App
- sleep(5) #等待淘宝首页加载 [App 有时加载数据有时需加载几秒, 故在需要加载等待的地方可加上等待时间]
- driver.find_elements_by_id("com.xunmeng.pinduoduo:id/cne")[2].click() #首页_点击底栏搜索 tab
- sleep(2) #等待页面跳转
- driver.find_element_by_id("com.xunmeng.pinduoduo:id/bf1").click() #点击搜索框进入搜索页
- driver.find_element_by_id("com.xunmeng.pinduoduo:id/mr").send_keys("T 恤") #输入关键字 T 恤
- sleep(2)
- driver.find_element_by_id("com.xunmeng.pinduoduo:id/bfa").click() #点击搜索 btn
来源: http://www.bubuko.com/infodetail-3292989.html