一、环境搭建
1、下载安装appium。前往appium官网下载appium安装包,并进行安装
2、安装Android SDK。可直接在https://android-sdk.en.softonic.com中下载。也可先安装 Android Studio ,然后在Android Studio 中进行安装
3、配置环境变量:新增变量名:ANDROID_HOME,对应值为Android SDK路径。如:D:\android_sdk\new_sdk。然后找到Path,并在里面添加:%ANDROID_HOME%\tools\bin、%ANDROID_HOME%\platform-tools、%ANDROID_HOME%\build-tools\28.0.3
二、简单介绍
1、启动appium。
(1)直接点击“启动服务器”
(2)启动会话,点击第一个按钮。当前页面可以查看实时日志, 查看所有日志可点击第二个按钮。停止此次服务会话,点击第三个按钮可停止服务。
(3)启动检查器会话, 会话启动后如下图页面:
2、连接手机(安卓机)。连接手机前,需要在手机设置开发者模式中设置,允许USB调试
3、在appium会话启动的页面配置所需功能相关参数,然后启动会话
所需功能为Appium Client向Appium Server发送的,其内容为一个json格式的键值对
platformName : 平台名字,如:ios、android
platformVersion : 对应的平台版本
deviceName : 设备名,手机型号
appPackage : 应用的包名
appActivity : 应用的Activity
automationName : 自动
对于appPackage和appActivity参数如何查找呢?
(1)使用aapt工具 ,适合给程序自动获取 apk 的相关信息,非常实用
aapt是sdk自带的一个工具,在sdk\build-tools\目录下
以豆瓣为例:
aapt dump badging apk的路径
注:findstr类似于Linux命令中的grep
(2) adb logcat | findstr -i displayed(需操作APP)
三、APP定位元素
(1)find_element_by_id == resouce_id
driver.find_element_by_id("com.douban.frodo:id/entire_password_login_text")
(2)find_elements_by_class_name(基本不怎么用,因为值太多) class
driver.find_elements_by_class_name('android.widget.TextView')
(3)find_element_by_accessibility_id content-desc
(4)find_element_by_xpath 之前用的xpath语法差不多都能用
driver.find_element_by_xpath('//*[@text="帐号密码登录"]')
(5)find_element_by_android_uiautomator — 安卓特有的定位方式
driver.find_element_by_android_uiautomator('new UiSelector().resourceId("com.douban.frodo:id/entire_password_login_text")')
driver.find_element_by_android_uiautomator('new UiSelector().className("android.widget.TextView")')
driver.find_element_by_android_uiautomator('new UiSelector().text("帐号密码登录")')
四、H5原生页面定位元素
1、访问chrome://inspect/#devices(对网速有要求,有的时候访问不了,不稳定)
(2)使用UC开发者工具(仅Windows可用)
具体定位方式与web端一样,可参考web元素定位方式。