上下观古今,起伏千万途。这篇文章主要讲述Appium中app的元素定位相关的知识,希望能为你提供帮助。
app定位方式,本文只讲android手机的定位方式。
【Appium中app的元素定位】前提条件是adb连接到模拟器或者是手机(具体连接方式这里不再讲解),证明已连接到设备
adb devices
文章图片
app元素定位工具一:UI Automator Viewer
这个工具是Android SDK自带的一个定位工具,具体页面截图如下:
文章图片
app元素定位工具二:Appium工具
启动Appium,启动之后,页面有一个放大镜的按钮,如图所示:
文章图片
点击放大镜按钮,进入配置项,如果所示:
platformName --系统名称
platformVersion -- 系统的版本
deviceName --机型(随意添)
appPackage --app包名(这里以淘宝为例)
appActivity --欢迎页面
noReset --启动app时不要清除app里的原有的数据(True)
获取appPackage和appActivity的方法,com命令进入Android-sdk/build-tools-29.0.2目录下,执行命令
aapt dump badging xxx.apk(安装包名称)
app包名
文章图片
appActivity名称:
文章图片
文章图片
设置好启动项参数后,启动会话。
文章图片
接下来说元素定位表达式,appium中的定位表达式,继承了selenium中的八大定位表达式(selenium的八大定位前边已经说过,就不再赘述),同时也有自己的定位表达式,分别是:
文章图片
文章图片
AndroidUiAutomator定位使用UiAutomator中的UiSelector类来处理元素定位,该方法的参数为UiSelector类定位元素的表达式
new UiSeletor().函数名称("定位表达式")
实例化一个UiSelector对象,然后通过实例调用接口。
这里常用的是ANDROID_UIANTOMATOR和ACCESSIBILITY_ID元素定位
举个栗子:
通过resrouce-id来定位
find_element_by_android_uiautomator(\'new UiSelector().resourceId("com.taobao.taobao:id/textview_goods_title")\')
通过text来定位
find_element_by_android_uiautomator(\'new UiSelector().text("文本内容")\')
通过content-desc定位
find_element_by_android_uiautomator(\'new UiSelector().description("勾选宝贝")\')
id、class、content-desc定位通过id来定位(resrouce-id)
find_element_by_id("com.taobao.taobao:id/textview_goods_title")
通过ClassName定位(class)
.find_element_by_class_name("android.widget.CheckBox")
通过AccessibilityId定位(content-desc)
find_element_by_accessibility_id("勾选宝贝")
app定位中不建议使用xpath定位,多以此处也不再多赘述了。
推荐阅读
- Android面向切面编程(AOP)(转)
- exposed beyond app through ClipData.Item.getUri()
- 权威盲盒幸运盒子app软件开发
- Appium遇到的坑环境配置无误,路径无中文,无空格,提示error: Logcat capture failed: spawn ENOENT
- 转(applicationContext.xml文件放置位置不同而导致的jUnit测试的时候路径的不同)
- CSAPP_AttackLab实验报告
- 玩转OneNET物联网平台之MQTT服务④ —— 远程控制LED(设备自注册)+ Android App控制
- Python Pandas如何读取文件(详细实现————)
- 如何将列添加到DataFrame列(添加新列详细解释————)