【appium】根据UIAutomator定位元素

text属性的方法

driver.find_element_by_android_uiautomator(‘new UiSelector().text("Custom View")‘).click()         #text
driver.find_element_by_android_uiautomator(‘new UiSelector().textContains("View")‘).click()        #textContains
driver.find_element_by_android_uiautomator(‘new UiSelector().textStartsWith("Custom")‘).click()    #textStartsWith
driver.find_element_by_android_uiautomator(‘new UiSelector().textMatches("^Custom.*")‘).click()    #textMatches

class属性的方法

driver.find_element_by_android_uiautomator(‘new UiSelector().className("android.widget.TextView").text("Custom View")‘).click()     #className
driver.find_element_by_android_uiautomator(‘new UiSelector().classNameMatches(".*TextView$").text("Custom View")‘).click()          #classNameMatches

 伪xpath方法定位

driver.find_element_by_android_uiautomator(‘new UiSelector().text("Custom View").fromParent(new UiSelector().text("Accessibility Service"))‘).click()            #通过同级元素定位同级元素
driver.find_element_by_android_uiautomator(‘new UiSelector().className("android.widget.ListView").childSelector(new UiSelector().text("Custom View"))‘).click()  #通过父级元素定位子集元素

 resourceId属性的方法



driver.find_element_by_android_uiautomator(‘new UiSelector().resourceId("android:id/text1")‘)    #resourceId
driver.find_element_by_android_uiautomator(‘new UiSelector().resourceIdMatches(".*id/text1$")‘)  #resourceIdMatches

description属性的方法
driver.find_element_by_android_uiautomator(‘new UiSelector().description("Custom View")‘).click()      #description
driver.find_element_by_android_uiautomator(‘new UiSelector().descriptionStartsWith("Custom")‘).click() #descriptionStartsWith
driver.find_element_by_android_uiautomator(‘new UiSelector().descriptionMatches("^Custom.*")‘).click() #descriptionMatches

 元素的其他属性

除了以上比较常用的方法外,UIAutomator还支持其他一些方法,比如根据控件属性是否可点击可聚焦可长按等来缩小要定位的控件的范围,具体使用方法不一一列举(checked,clickable,focesed.......)

driver.find_element_by_android_uiautomator(‘new UiSelector().clickable(true).text("Custom View")‘).click()
 
时间: 2024-10-17 11:09:39

【appium】根据UIAutomator定位元素的相关文章

Appium 使用android_uiautomator定位元素时报错: The requested resource could not be found, or a request was received using an HTTP method that is not supported by the mapped resource

使用 android_uiautomator 定位元素时(现在用的还不太熟,对于这个方法还需要加深了解)报错: 报错信息:The requested resource could not be found, or a request was received using an HTTP method that is not supported by the mapped resource 因为用的不熟,所以也是上网查了好多方法,最后检查代码的时候发现,原来是拼写错误 我将new UiSelect

appium 使用findElementByAndroidUIAutomator 定位元素示例

import io.appium.java_client.remote.MobileCapabilityType; import io.appium.java_client.remote.MobilePlatform; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.WebElement; import org.openqa.selenium.re

appium相对位置定位元素----父节点/兄弟节点定位

讲一下定位手机app上元素时定位父节点.兄弟节点的方法 这里就讲这两种了,也是比较常用的两种方法,其他的方法大家查看博客的其他章节 实例: 我们现在要定位到RelativeLayout[0,1285][1080,1465]下的LinearLayout下的第二个元素 一. 通过兄弟节点来定位 使用方法:following-sibling:: 找到当前节点的后面一个节点,也就是弟弟节点preceding-sibling:: 找到当前节点的前面的一个节点,也就是哥哥节点 这里我使用这句来找我们需要定位

Appium学习路—Android定位元素与操作

一.常用识别元素的工具 uiautomator:Android SDK自带的一个工具,在tools目录下 monitor:Android SDK自带的一个工具,在tools目录下 Appium Inspector:Appium自带的一个功能,只有mac下可以使用该功能 下面是用monitor抓取到的页面元素 下面使用Appium Inspector定位的元素 二.元素定位   1.格式:find_element_by_定位方式(value) 通过id定位 (取resource-id的值): dr

Appium移动端自动化:Appium-Desktp的使用以及定位元素方式总结

一.appium-desktop功能介绍 1.打开appium-desktop,点击start session 2.打开后,点击屏幕右上角的搜索按钮 3.然后会打开配置页面,在本地服务配置信息同上面写的代码链接配置.填入正确的信息后,建议先点击保存,再点击start Session. 4.成功启动模拟器中的qq程序.如下图.此时如果模拟器和appium-desktop中界面不同,可点击刷新按钮同步下,按钮的功能如下: 二.定位方式 点击定位元素按钮,点击左侧app界面中的登录定位元素后,就会出现

Appium中app的元素定位

app定位方式,本文只讲Android手机的定位方式. 前提条件是adb连接到模拟器或者是手机(具体连接方式这里不再讲解),证明已连接到设备 adb devices app元素定位工具一:UI Automator Viewer 这个工具是Android SDK自带的一个定位工具,具体页面截图如下: app元素定位工具二:Appium工具 启动Appium,启动之后,页面有一个放大镜的按钮,如图所示: 点击放大镜按钮,进入配置项,如果所示: platformName  -- 系统名称 platfo

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】根据xpath定位元素

1. 背景 本文尝试使用的试验对象是SDK自带的NotePad应用实例,假设已经有两个Notes分别是“note1”和“note2”添加到Notepad上面,我们要做的就是尝试用xpath的方法来定位“note2”这个ListView下面的TextView控件. 注意界面上有3个TextView类型的控件: 最上面的作为整个ListView的Title文本为“Notes”的TextView,Index为0 中间的文本为“note2”的TextView,Index也是0 最下面的文本为“note1

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

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