移动端自动化==>Appium定位方式总结

1、ID

Android

Android的resource-id对应ID定位方式,可以通过index来获取需要的元素(从0开始查找dom树中的同名resource-id属性)。使用appium-desktop来获取元素时,id和resource-id是相同的,如果只有resource-id,可能存在重复现象,如果提示有id的定位方式,则可以只接获取,代表唯一。

driver.find_element_by_id(‘com.tencent.mobileqq:id/btn_login‘)

2、AccessibilityId

Android

Android的content-desc属性对应AccessibilityId定位方式,这个content-desc属性专门为残障人士设置,如果这个属性不为空则推荐使用。

driver.find_element_by_accessibility_id(‘请输入QQ号码或手机或邮箱‘)

iOS

iOS的label和name属性都对应AccessibilityId定位方式,如果有则推荐使用。

3、Xpath

Android

Android的Xpath定位与PC的Xpath定位大同小异,可以通过相对路径的定位方式定位。区别在于,这里相对路径定位的//后只可以接Android的class属性或*。

driver.find_element_by_xpath(‘//android.widget.EditText[@text="QQ号/手机号/邮箱"]‘)

iOS 

iOS10 以上使用XCUITest框架后,原生框架不支持XPATH,Appium进行了转换,速度很慢不建议使用。

4、UIAutomator

Android的源生测试框架的定位方式,定位速度快。推荐使用常用的几种。

 1 # 这个在运行时,调用的是Android自带的UI框架UiAutomator的Api
 2 # 介绍几个简单常用的,text、className、resource-id
 3 # text
 4 # 匹配全部text文字
 5 driver.find_element_by_android_uiautomator(‘new UiSelector().text("手机号")‘)
 6 # 包含text文字
 7 driver.find_element_by_android_uiautomator(‘new UiSelector().textContains("机")‘)
 8 # 以text什么开始
 9 driver.find_element_by_android_uiautomator(‘new UiSelector().textStartsWith("手")‘)
10 # 正则匹配text
11 driver.find_element_by_android_uiautomator(‘new UiSelector().textMatches("^手.*")‘)
12
13 # className
14 driver.find_elements_by_android_uiautomator(‘new UiSelector().className("android.widget.TextView")‘)
15 # classNameMatches
16 driver.find_elements_by_android_uiautomator(‘new UiSelector().classNameMatches("^android.widget.*")‘)
17
18 # resource-id、resourceIdMatches
19 driver.find_element_by_android_uiautomator(‘new UiSelector().resourceId("com.syqy.wecash:id/et_content")‘)
20
21 # description
22 driver.find_element_by_android_uiautomator(‘new UiSelector().description("S 日历")‘)
23 # descriptionStartsWith
24 driver.find_element_by_android_uiautomator(‘new UiSelector().descriptionStartsWith("日历")‘)
25 # descriptionMatches
26 driver.find_element_by_android_uiautomator(‘new UiSelector().descriptionMatches(".*历$")‘)

5、iOSPredicateString

仅支持iOS10以上,可以多个属性同时定位,推荐。(替代XPATH)

driver.find_elements_by_ios_predicate("label == ‘登录‘")

driver.find_elements_by_ios_predicate("type=‘XCUIElementTypeOther‘ and name=‘联系人,标签, 第2个按钮,共3个‘")

6、iOSUIAutomation

iOS9.3以下使用,现在已经废弃,iOSPredicateString代替了iOSUIAutomation

原文地址:https://www.cnblogs.com/L-Test/p/9370860.html

时间: 2024-08-28 05:51:30

移动端自动化==>Appium定位方式总结的相关文章

Web端自动化元素定位方法

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

Appium移动端自动化:元素定位方式总结

ClassName Android:Android的class属性对应ClassName定位方式,ClassName一般都是会重复的,可以通过index来获取需要的元素.(从0开始查找dom树中的同名class属性) iOS:iOS的type属性对应CLassName定位方式,ClassName一般都是会重复的,可以通过index来获取需要的元素.(从0开始查找dom树中的同名class属性) # 通过class_name定位,取class内容: driver.find_element_by_c

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

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

六 APPIUM Android 定位方式

文本转自:http://www.cnblogs.com/sundalian/p/5629500.html APPIUM Android 定位方式 1.定位元素应用元素 1.1通过id定位元素 Android里面定位的id一般为resrouce-id: 代码可以这样写: WebElement element = driver.findElement(By.id("com.tencent.mm:id/do")); 或者: driver.findElementById("com.t

七 APPIUM Android 定位方式

1.定位元素应用元素   1.1通过id定位元素 Android里面定位的id一般为resrouce-id: 代码可以这样写: WebElement element = driver.findElement(By.id("com.tencent.mm:id/do")); 或者: driver.findElementById("com.tencent.mm:id/do") 下面的例子展示的是通过id定位到元素并点击: @Test public void doClick

APPIUM Android 定位方式

原文地址https://www.cnblogs.com/sundalian/p/5629500.html 1.定位元素应用元素 1.1通过id定位元素 Android里面定位的id一般为resrouce-id: 代码可以这样写: WebElement element = driver.findElement(By.id("com.tencent.mm:id/do")); 或者: driver.findElementById("com.tencent.mm:id/do"

Appium iOS万能的定位方式--Predicate(iOSNsPredicate)

所谓Predicate定位即Java-Client -5.0.版本以及Appium-Python-Client 0.31版本更新后增加的新的定位方式: 举个例子: JAVA代码: //输入账号和密码 driver.findElementByIosNsPredicate("value =='11'").sendKeys("[email protected]"); driver.findElementByIosNsPredicate("name == 'log

iOSNsPredicate Appium 定位元素

Appium使用WebDriverAgent之后,新增了一种定位方法iOSNsPredicate,总结了一下使用方法: MobileElement photo = driver.findElementByIosNsPredicate("name = 'head new'"); // 等于 MobileElement photo = driver.findElementByIosNsPredicate("name LIKE '*new'");  // 模糊匹配 Mob

Selenium2+python自动化28-table定位【转载】

前言 在web页面中经常会遇到table表格,特别是后台操作页面比较常见.本篇详细讲解table表格如何定位. 一.认识table 1.首先看下table长什么样,如下图,这种网状表格的都是table 2.源码如下:(用txt文本保存,后缀改成html) <!DOCTYPE html><meta charset="UTF-8"> <!-- for HTML5 --><meta http-equiv="Content-Type"