基础参数获取
1、设置好IP和端口,启动Appium。
2、连接手机(我这里使用的是模拟机)
获取到手机IP,这个IP端口就是下面deviceName的值。
3、获取appPackageappActivity
aapt dump badging apk文件路径
Appium安装启动APP
-
这个步骤可以安装启动APP,已安装的会直接启动。
-
需要注意的是这里如果使用Genymotion可能会报 Failure [INSTALL_FAILED_NO_MATCHING_ABIS] 这是因为模拟器实在
x86
的处理器上运行,而手机一般都是RAM
架构的,所以得把模拟器刷成ARM
的才行(是不是这个原因我不知道,百度大家都这样说~),解决办法就是下载对应的 Genymotion-ARM-Translation_v1.1.zip 压缩包,然后拉入模拟器,重启模拟器就可以了(是不是感觉很简单,值得注意的是有的小伙伴比如我偶尔喜欢使用中文做文件夹,所以注意了这是会报错的,最好是放在根目录下,我这里提供了几个安卓版本对应的zip包,网上实在太难找了,鬼知道我下载了多少狗皮软件。。。。提取码:5pl4 )
# -*- coding: utf-8 -*- __author__ = 'Luke' from appium import webdriver # 定义字典,配置appium desired_caps = { 'platformName': 'Android', # 系统 'platformVersion': '5.0', # 版本 'deviceName': '192.168.184.107:5555', # 我这里是模拟机 'app': r'D:androidzalo.apk', # apk安装包位置 'appPackage': 'com.zing.zalo', # apk的package,通过aapt命令查找 'appActivity': 'com.zing.zalo.ui.SplashActivity', # apk的launcherActivity,通过aapt命令查找 'noReset': True, # 重要参数,=True 恢复默认值,=False(缺省值) 每次都是从刚安装app的状态进入(格式化状态),可能会显示欢迎页等 } driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps) # 连接appium,并将参数(字典)传入
元素定位识别工具
-
常用的识别元素工具有uiautomator和monitor,我选用的是monitor其他的自己百度吧~
-
这个工具在android SDK文件夹下的tools中(本机地址D:androidandroid-sdk-windows ools),点击启动即可使用。
Appium选择定位(元素)
这个可以用JS、jQuery选择器来理解,主要包含ID、Class、centent-desc、text、xpath来定位。
通过id
定位元素(find_element_by_id)
-
元素的resource-id
-
唯一标识该元素的值(id有时候并不唯一)
-
一般优先根据id定位
driver.find_element_by_id('com.zing.zalo:id/btnLogin').click() # click为点击事件