Appium中app的元素定位
app定位方式,本文只讲Android手机的定位方式。
前提条件是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定位,多以此处也不再多赘述了。
Appium中app的元素定位的更多相关文章
- appium自动化测试之UIautomatorviewer元素定位
appium自动化测试之UIautomatorviewer元素定位 标签(空格分隔): uiautomatorviewer元素定位 前面的章节,已经总结了怎么搭建环境,怎样成功启动一个APP了,这里具 ...
- python+Appium自动化:id元素定位
元素定位 与web自动化一样,app自动化元素定位也是非常重要的一环,,appium也是提供了很多元素定位的方法,比如:id.name.class.层级定位等等. 元素定位方式 id name cla ...
- 5、通过Appium Desktop实现页面元素定位
之前我们已经安装了Appium Desktop,下面就让我们使用Appium Desktop实现页面元素定位 1.首先我们打开Appium Desktop,进入如下界面,点击Start Server ...
- python+Appium自动化:H5元素定位
问题思考 在混合开发的App中,经常会有内嵌的H5页面.那么这些H5页面元素该如何进行定位操作呢? 解决思路 针对这种场景直接使用前面所讲的方法来进行定位是行不通的,因为前面的都是基于Andriod原 ...
- app自动化 - 元素定位不到?别慌,3大工具帮你搞定!
在日常的android app自动化测试工作当中,很多朋友在元素定位时,会遇到以下类似的报错: 然后会来问,这是啥情况? 一般情况下,都会送上以下亲切的关怀: 1)adb能识别到设备吗? 2)设备有被 ...
- 『与善仁』Appium基础 — 17、元素定位工具(一)
目录 1.uiautomatorviewer介绍 2.uiautomatorviewer工具打开方式 3.uiautomatorviewer布局介绍 4.uiautomatorviewer工具的使用 ...
- 『与善仁』Appium基础 — 18、元素定位工具(二)
目录 1.Appium Inspector介绍 2.Appium Inspector打开方式 3.Appium Inspector布局介绍 4.Appium Inspector工具的配置 5.Appi ...
- 『与善仁』Appium基础 — 19、元素定位工具(三)
目录 1.Chrome Inspect介绍 2.Chrome Inspect打开方式 3.Chrome Inspect工具的使用 (1)Chrome Inspect工作前提 (2)Chrome Ins ...
- Appium学习笔记4_元素定位方法
Appium之元素定位,如果对Android上如何使用工具获取页面元素有问题的,请转战到这:http://www.cnblogs.com/taoSir/p/4816382.html. 下面主要是针对自 ...
随机推荐
- computer networking ---------DNS
[DNS]domain named system 域名解析系统,即相当于对www.baidu.com的类似的域名进行解析,对于人而言,记忆一些域名相比于记忆一些Ip地址来说简单的多,而对于计算机而言, ...
- linux系统启动报错:[contains a file system with errors, check forced]的解决方法参考
1.解决参考一Press enter for maintenance(or type Control-D to continue):/dev/sda3 contains a file system w ...
- Python使用进程间共享变量来控制两个进程(监听键盘和相机录制)的交互
我有个简单的应用需求: 1. 该应用随时会监听键盘的输入: 2. 当输入指定键时会控制相机录制的启动和关闭. 监听键盘是一个事件循环,相机录制也是一个循环录制的过程.我试着用 Python 启动两个进 ...
- MarkDown中如何加入上标和下标
上标 使用<sup></sup>标签包裹的部分就是上标,例如:A<sup>T</sup> 显示效果就是 AT . 下标 使用<sub>< ...
- LOJ 2085: 洛谷 P1587: bzoj 4652: 「NOI2016」循环之美
题目传送门:LOJ #2085. 两个月之前做的傻题,还是有必要补一下博客. 题意简述: 求分子为不超过 \(n\) 的正整数,分母为不超过 \(m\) 的正整数的所有互不相等的分数中,有多少在 \( ...
- Windbg Processes and Threads(进程和线程)窗口的使用
在 WinDbg 中,进程和线程窗口中显示有关系统. 进程和线程正在调试的信息. 此窗口还可选择新的系统. 进程和线程处于活动状态. 如何打开进程和线程窗口 通过菜单View--->Proces ...
- Educational Round 64 题解
前言: 这场太难了……我一个紫名只打出两题……(虽说感觉的确发挥不够好) 一群蓝绿名的dalao好像只打了两题都能升分的样子…… 庆幸的是最后A出锅然后unr了>///< 写一波题解纪念这 ...
- npm install命令遇到relocation error: npm: symbol SSL_set_cert_cb的报错问题
在安装elasticsearch-head的过程中npm install遇到如下报错 [root@localhost elasticsearch-head]# npm install npm: rel ...
- C# 获得本地通用网卡信息
可以通过使用命名空间下的ManagementObjectSearcher类及其方法Get来获得通用网卡信息. 其中,最重要的是ManagementObjectSearcher构造函数的输入参数,可以传 ...
- Python(三)对装饰器的理解
装饰器是 Python 的一个重要部分,也是比较难理解和使用好的部分.下面对装饰器做一下简单整理 1. 前言 装饰器实际上是应用了设计模式里,装饰器模式的思想: 在不概念原有结构的情况下,添加新的功能 ...