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定位,多以此处也不再多赘述了。

原文地址:https://www.cnblogs.com/xingyunqiu/p/11759494.html

时间: 2024-10-27 18:33:44

Appium中app的元素定位的相关文章

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

元素定位 与web自动化一样,app自动化元素定位也是非常重要的一环,,appium也是提供了很多元素定位的方法,比如:id.name.class.层级定位等等. 元素定位方式 id name class List定位 相对定位 Xpath定位 H5页面元素定位 Uiautomator定位 首先可以进入SDK中的tools文件夹中打开uiautimatorviewer.bat,用于元素定位 测试场景,启动淘宝app,同意温馨提示,进入首页 id定位 Appium中可以使用find_element

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

Appium之元素定位,如果对Android上如何使用工具获取页面元素有问题的,请转战到这:http://www.cnblogs.com/taoSir/p/4816382.html. 下面主要是针对自己的了解和学习,简单的总结下关于Appium native APP上的一些元素定位方法的使用以及通过UI Automator Viewer定位页面以后,如果从上面定位到你想使用的元素. 已淘宝为例,来进行元素的定位.打开UI Automator Viewer Appium和Webdriver有一点区

Appium Python 五:元素定位

总结 单个元素定位: driver.find_element_by_accessibility_id(id) driver.find_element_by_android_uiautomator(uia_string) driver.find_element_by_class_name(name) driver.find_element_by_css_selector(css_selector) driver.find_element_by_id(id_) driver.find_element

HTML中Float和元素定位

浮动 1.float属性--浮动 float:left:float:right:float:none: 2.清除浮动--clear Clear:left\right\both\none 3.溢出处理 overflow:visible\hidden\scroll\auto;  定位网页元素 1.position 绝对定位(absolute):将被赋予此定位方法 的对象从文档流中拖出,使用left,right,top,bottom等属性 相对于其最接近的一个最有定位设置的父级对象进行绝对定位, 如果

appium+python自动化49-yaml管理定位元素

如何高效管理定位元素,这个是很有学问的问题,也是面试必问的[以下纯属个人观点,勿喷!]. 有的人用xml管理页面定位元素,这种逼格略高,但是小编认为学习成本大,贼麻烦. 有的人提到用excel管理页面定位元素,这种略显逼格,至少做到了数据分离,但是读取excel太慢,不够高效,还得在excel里面维护,忒麻烦. 有的人说把定位元素放数据库管理,这种除了装逼,没觉得有多高效,当然有小伙伴提到接口测试数据量比较大的时候,这种方法还可以. 有的人用pageobject模式,直接在page类写定位方法,

Robot Framework 教程 (2) - 页面元素定位

上一篇文章中,简单模拟了一个baidu搜索并截图的过程,在搜索过程中,我们需要对搜索框.搜索按钮进行定位.本篇文章主要介绍一下具体的定位方法. 我们的脚本如下: *** Settings *** Library Selenium2Library *** Test Cases *** firefox兼容性 Open Browser https://www.baidu.com/ ff Input Text id=kw LeetTest Click button id=su Sleep 2 Captu

Web端自动化元素定位方法

版本迭代周期越来越短?需求越来越多?测试工作量越来越大?怎么保证质量?怎么保证上线周期? 随着互联网的快速发展,越来越多的测试人员遇到上述所说的问题.如何实现既提高测试效率和覆盖率,又节约测试成本,是每一个企业追求的目标.为了解决上述的问题,越来越多的公司开始加入自动化测试.以下是一些常用的定位方法介绍 一.常用方法 1)通过class属性定位 driver.findElement(By.className("spread")).sendKeys("你好"); 2)

Python3-Selenium自动化测试框架(四)之css元素定位

Selenium自动化测试框架(四)之css元素定位 一.css元素定位 CSS可以通过元素的id.class.标签(input)这三个常规属性直接定位到 id-->> # class-->> . 1.通过id进行定位 input#kw #kw 2.通过class进行定位 input.s_ipt .s_ipt 3.子类定位">":通过先定位父类(self),再定位self下的子类 #s_kw_wrap>#kw 4.同级定位"+":

基于C#的Appium自动化测试框架(Ⅱ):Android元素定位

我们知道,Appium的原理上是通过RemoteWebDriver提供了元素定位功能,再根据定位后的元素进行操作,比如: protected static RemoteWebDriver CalculatorSession; CalculatorSession.FindElementByName("One").Click(); 工作的重点就是定位到对应的元素,Appiuim提供了很多用来定位元素的方法,具体包括: FindElement(By by); FindElementByCla