Appium step by step
1、配置环境
2、Appium两种打开方式:
命令行
Appium ui应用 点机器人+开始按钮
3、元素定位
findElementByName
通过name定位,打开UI Automator Viewer, node detail下找到标签是“text”—>“购物车”
driver.findElementByName("购物车");
findElementByClassName--容易重复
通过classname定位(一般情况下,最好不要通过classname来进行元素的定位,避免出现重复),打开UI Automator Viewer, node detail下找到标签是“class”—>“android.widget.TextView”
driver.findElementByClassName("android.widget.TextView");
findElementById
通过ID定位,打开UI Automator Viewer, node detail下找到标签是“resource-id”—>”com.taobao.taobao:id/tv_title”
如果目标设备的API Level低于18则UIAutomatorViewer不能获得对应的Resource ID,只有等于大于18的时候才能使用。
driver.findElementById("com.taobao.taobao:id/tv_title");
findElementByAccessibilityId
Accessibility ID在Android上面就等同于contentDescription,这个属性是方便一些生理功能有缺陷的人使用应用程序的。比如我们有一个ImageView里面放置一张颜色复杂的图片,可能一些色弱色盲的人,分不清这张图片中画的是什么东西。如果用户安装了辅助浏览工具比如TalkBack,TalkBack就会大声朗读出用户目前正在浏览的内容。TextView控件TalkBack可以直接读出里面的内容,但是ImageView TalkBack就只能去读contentDescription的值,告诉用户这个图片到底是什么。
鉴于这是一个隐藏属性,而Android上用于查找控件的各种属性可能有所缺失或者有重复(比如id重复,比如一个list下面的所有项可能都是叫做“id/text1”),所以最佳的办法就是跟开发团队沟通好每个view都赋予一个唯一的contentDescription。
通过AccessibilityId定位,打开UI Automator Viewer, node detail下找到标签是“content-desc”—>“百度一下”
driver.findElementByAccessibilityId("百度一下");
findElementByCssSelector
findElementByLinkText
findElementByPartialLinkText
findEelementByXPath
4、查看appPackage和appActivity
没有apk,应用已经安装到手机或虚拟机中
1.logcat
.清除logcat内容,使用命令adb logcat -c
.启动logcat,使用命令adb logcat ActivityManager:I *:s
.启动要查看的程序,
Displayed com.mm.android.hsy/.ui.LoginActivity: +3s859ms
appPackage = com.mm.android.hsy
appActivity = .ui.LoginActivity
查看apk包名package和入口activity名称的方法
ctrl+r 打开CMD窗口
进入sdk-aapt目录

执行命令:aapt dump badging xx.apk

内容太多?不好看,没关系,全部拷出来,ctrl+f,so easy!
package: name='cn.com.pclady.yimei' versionCode='100' versionName='1.0.0' launchable-activity: name='cn.com.pclady.yimei.module.launcher.LauncherActivity'

浙公网安备 33010602011771号