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的元素定位的更多相关文章

  1. appium自动化测试之UIautomatorviewer元素定位

    appium自动化测试之UIautomatorviewer元素定位 标签(空格分隔): uiautomatorviewer元素定位 前面的章节,已经总结了怎么搭建环境,怎样成功启动一个APP了,这里具 ...

  2. python+Appium自动化:id元素定位

    元素定位 与web自动化一样,app自动化元素定位也是非常重要的一环,,appium也是提供了很多元素定位的方法,比如:id.name.class.层级定位等等. 元素定位方式 id name cla ...

  3. 5、通过Appium Desktop实现页面元素定位

    之前我们已经安装了Appium Desktop,下面就让我们使用Appium Desktop实现页面元素定位 1.首先我们打开Appium Desktop,进入如下界面,点击Start Server ...

  4. python+Appium自动化:H5元素定位

    问题思考 在混合开发的App中,经常会有内嵌的H5页面.那么这些H5页面元素该如何进行定位操作呢? 解决思路 针对这种场景直接使用前面所讲的方法来进行定位是行不通的,因为前面的都是基于Andriod原 ...

  5. app自动化 - 元素定位不到?别慌,3大工具帮你搞定!

    在日常的android app自动化测试工作当中,很多朋友在元素定位时,会遇到以下类似的报错: 然后会来问,这是啥情况? 一般情况下,都会送上以下亲切的关怀: 1)adb能识别到设备吗? 2)设备有被 ...

  6. 『与善仁』Appium基础 — 17、元素定位工具(一)

    目录 1.uiautomatorviewer介绍 2.uiautomatorviewer工具打开方式 3.uiautomatorviewer布局介绍 4.uiautomatorviewer工具的使用 ...

  7. 『与善仁』Appium基础 — 18、元素定位工具(二)

    目录 1.Appium Inspector介绍 2.Appium Inspector打开方式 3.Appium Inspector布局介绍 4.Appium Inspector工具的配置 5.Appi ...

  8. 『与善仁』Appium基础 — 19、元素定位工具(三)

    目录 1.Chrome Inspect介绍 2.Chrome Inspect打开方式 3.Chrome Inspect工具的使用 (1)Chrome Inspect工作前提 (2)Chrome Ins ...

  9. Appium学习笔记4_元素定位方法

    Appium之元素定位,如果对Android上如何使用工具获取页面元素有问题的,请转战到这:http://www.cnblogs.com/taoSir/p/4816382.html. 下面主要是针对自 ...

随机推荐

  1. NBU恢复数据库数据文件报错RMAN-06091

    RMAN-06091: no channel allocated for maintenance (of an appropriate type) 一.错误信息 报错信息如下 Starting res ...

  2. 腾讯面试Android高级岗,居然被一个多线程基础面倒了?

    前言 一个在深圳从事开发五年的老友一个月前从原公司辞职后,昨天去腾讯总部面试Android高级岗,一面的时候,自我介绍后,陆陆续续问了很多问题,有着五年的从业经验很多项目开发的技术问题都回答的很通顺, ...

  3. <人人都懂设计模式>-状态模式

    同样是水,固态,气态,液态的变化,是由温度引起. 引此为思考状态模式. from abc import ABCMeta, abstractmethod # 引入ABCMeta和abstractmeth ...

  4. pypi 打包分发

    打包Python项目 本教程将指导您如何打包一个简单的Python项目.它将向您展示如何添加必要的文件和结构来创建包,如何构建包以及如何将其上载到Python包索引. 一个简单的项目 本教程使用一个名 ...

  5. 对象存储服务 OSS(Object Storage Service),知识点(待补充上仓库代码)

    资料 网址 官方文档 https://help.aliyun.com/product/31815.html?spm=a2c4g.11186623.3.1.3e1459669xRokl OSS Brow ...

  6. Python学习笔记8 pip换源

    换pip源 安装好 python 后,有一个问题就是 pip 安装的默认下载地址在国外.要换一下,不然蜗牛速度,怎么追赶世界?(瞎扯一下,活跃气氛~) Ubuntu下,进入终端(ctrl + alt ...

  7. [RN]react-native-scrollable-tab-view和FlatList手势冲突解决

    问题描述: react-native-scrollable-tab-view叠加react-native-scrollable-tab-view再加上FlatList FlatList向下拉时,会造成 ...

  8. vue中使用过的全局API

    Vue.directive()---------全局自定义指令 Vue.filter()----------全局过滤器 Vue.$set()----------为响应式对象添加一个响应式属性 Vue. ...

  9. ACE在Ubuntu下的安装和编译

    之前写了很多linux下的底层网络API的demo,这些demo可用于了解底层的网络通信过程,但是想做出好的服务器用于实际业务还是非常困难的,需要大量的代码实现,移植性也非常差,想要写出高性能架构的服 ...

  10. Docker ubuntn 使用apt-get update报错

    在docker 容器中执行apt-get update有时候会报错,当然造成错误的原因有很多情况,具体情况具体分析, APT Hash sum mismatch错误的常见解决方法总结这篇博客写的不错, ...