美文网首页
Appium之获取app的package和activity以及U

Appium之获取app的package和activity以及U

作者: keitwo | 来源:发表于2018-01-27 09:22 被阅读2898次

    一、获取APP的package(包名)和activity

    在使用android自动化测试工具monkeyrunner和appium中启动应用时,需要填写被测程序的包名和启动的Activity,以下有几种查看应用包名package和入口activity名称的方法:

    1.使用aapt//aapt是sdk自带的一个工具,在sdk\builds-tools\目录下

    >以手机淘宝APK为例,CMD切换到aapt.exe目录执行:aapt dump badging D:\work\appium\shoujitaobao_174.apk (放置手机淘宝APK的位置)

    >运行后的结果中以下两行分别是应用包名package和入口activity名称

    package: name=’com.taobao.taobao’

    package

    launchable-activity: name=’com.taobao.tao.welcome.Welcome’

    activity

    注:在android sdk目录搜索可以找到aapt.exe,如果没有可以下载apktool。

    2.各种权限都开启,使用sdk/tools目录下hierarchyviewer.bat 工具可以获得(可以查看对应的app的activity)

    hierarchyviewer

    3.通过在CMD窗口中执行adb logcat -v time -s ActivityManager查看对应的字段

    在CMD窗口中执行adb logcat -v time -s ActivityManager,然后在模拟器或者手机中点击应用进入,如点击系统设置,进入后会有相应的日志信息打印出来,在信息中查找 cmp=com.android.settings/.Settings

    4.通过在CMD窗口中执行adb shell dumpsys window w |findstr \/ |findstr name=, 然后点击需要运行的app,即可查看到相应的package和activity

    二、SDK-tools元素定位工具

    1.adroid-sdk的安装目录tools下有1个自带的工具uiautomatorviewer,打开后,如下所示:

    uiautomatorviewer元素定位 UI定位界面

    2.首先在模拟器或者真机上打开APP软件,进入主界面,然后点击uiautomatorviewer软件左上角的手机图标,如下图

    UI工具连接APP

    得到的界面如下,选中元素即可看到元素的layout信息,比如下方的定位框即可以通过ID来定位,也可以通过Xpath来定位

    UI工具定位APP

    三、appium自带的Inspector元素定位工具

    Appium Inspector 是 appium 自带的一个元素定位工具。appium Inspector 的 winddows 版本不太好用,但是 Mac 上的功能还是很强大的,一般mac 上用的比较多。

    1.设置appium的Android Settings,点击左上角的安卓图标进入安卓设置,注意设置时不要开启appium,也就是不要点击appium右上角的“三角形”按键

    Android Settings

    说明:

    a)Application是对应的应用,用Path的话不管你有没有这个应用,都是重新安装一遍,所以这里直接用了应用的包名和activity;

    b)Launch AVD是将要定位的机器,这里选的是模拟器;

    2.开启appium,点击右侧的launch(三角形图标按键)开启,然后点击appium上的inspector来进行定位,使用inspector上的refresh可以刷新成当前模拟器的页面(如果当前没有开开任何的安卓模拟器,点击refresh时,他会根据要Android settings中的launch device打开一个模拟器)

    设置apk路径并开启appium Ispector Window

    3.可能出现的异常

    在使用Ispector过程中,你会发现经常会报以下这个错误,每次启动都会给你手机上重新安装一次应用,并且不能用鼠标指定某个元素,没有uiautomatorviewer使用方便。这里建议大家使用uiautomatorviewer的定位方式

    Ispector异常界面

    四、元素定位方法

    1.格式:find_element_by_定位方式(value)

    通过id定位:driver.find_element_by_id("xxx")

    通过class_name定位:driver.find_element_by_class_name("android.widget.RelativeLayout")

    通过xpath定位:driver.find_element_by_xpath("//android.widget.LinearLayout[1]/android.widget.XXX")----(http://www.cnblogs.com/xxyBlogs/p/4244073.html)

    通过name定位:driver.find_element_by_name()

    通过text定位:driver.find_elements_by_android_uiautomator("new UiSelector().text(\"+关注\")")

    其他定位方法见请参考【每天1990】的博客,感谢分享

    欢迎关注公众号

    相关文章

      网友评论

          本文标题:Appium之获取app的package和activity以及U

          本文链接:https://www.haomeiwen.com/subject/kuklaxtx.html