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'
posted @ 2016-08-22 13:43  软件测试成长之路  阅读(247)  评论(0)    收藏  举报