IOS自动化测试元素定位

这篇具有很好参考价值的文章主要介绍了IOS自动化测试元素定位。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、元素属性介绍
  1、元素属性
  2、查看各定位方式执行效率

二、iOS常用定位方法
  1、accessibility_id
  2、class_name
  3、Xpath
  4、ios_class_chain(类型链)
  5、ios_predicate(谓词)


一个页面最基本组成单元是元素,想要定位一个元素,我们需要特定的信息来说明这个元素的唯一特征。

一、元素属性介绍  

iOS自动化元素查找工具,我使用的是Appium的inspector。最新版的appium自动展示多种元素定位表达式,还可以查看每种定位表达式的执行效率。

  1、元素属性
type
元素类型,与className作用一致,如:XCUIElementTypeButton

value
一般不用

name
元素的文本内容,可用作 AccessibilityId定位方式,如:ClearEmail

label
绝大多数情况下,与 name 作用一致

enabled
元素是否可点击,一般值为true或者false

visible

元素是否可见,一般值为true或者false

  2、查看各定位方式执行效率
  Appium的inspector功能中,选择某个元素后在“selected Element”中会展示多个定位表达式,而且点击定位表达式后面的“Get Timing”,可以显示每个定位表达式的执行时间。

二、iOS常用定位方法

  1、accessibility_id


  iOS自动化测试元素定位的accessibility_id主要使用元素的label或name(两个属性的值都一样)属性进行定位。

  例如:第一张截图中label或name都是“我的功能”

driver.find_element_by_accessibility_id("我的功能")
driver.find_element(MobileBy.ACCESSIBILITY_ID,  "我的功能")

  2、class_name


  class_name定位方法使用元素的type属性,type属性表示控件类型,一般不具有唯一性,因此class_name不常用。

  例如:type属性为:XCUIElementTypeButton

driver.find_element_by_class_name("XCUIElementTypeButton")
driver.find_element(MobileBy.CLASS_NAME, "XCUIElementTypeButton")

  3、Xpath  

Appium对app原生环境的xpath定位方法执行效率很低,从iOS 10开始使用的 XCUITest 框架原生不支持,定位速度很慢,官方不推荐这种方式。但是在实际使用中,当其他定位方式都不能找到元素时,可以尝试xpath定位。

  例如:第一张截图中“我的功能”定位
driver.find_element_by_xpath("//XCUIElementTypeStaticText[@name='我的功能']")
driver.find_element(MobileBy.XPATH, "//XCUIElementTypeStaticText[@name='我的功能']")

  4、ios_class_chain(类型链)


  ios_class_chain仅支持iOS 10或以上,且仅限于WebDriverAgent 框架中使用。此方法用于替代xpath,但该方法还有待完善,没有纳入官方文档。
  Github说明地址:https://github.com/appium/appium-xcuitest-driver

  例如:第一张截图中“我的功能”定位

driver.find_element_by_ios_class_chain('**/XCUIElementTypeStaticText[`label == "我的功能"`]')
driver.find_element(MobileBy.IOS_CLASS_CHAIN, '**/XCUIElementTypeStaticText[`label == "我的功能"`]')

  5、ios_predicate(谓词)


  iOS Predicate 即谓词逻辑。ios_predicate定位方法支持iOS所有的版本,也就是能适配XCUITest 和 UIAutomation底层测试框架,使用的就是iOS编程语言,因此可以把此方法作为首选定位方式。

  谓词表达式由属性、运算符和值构成。

   1.1、常用的属性

   在上面的表格中已经介绍,可以使用的元素属性:type、value、name、label、enabled、visible

   1.2、运算符

   1.2.1、比较运算符

    比较运算符  >, <, ==, >=, <=, !=

   可用于数值和字符串的比较,如:label == ‘我的功能’,label >= 500

   示例:
driver.find_element_by_ios_predicate("label == '我的功能'")
driver.find_element(MobileBy.IOS_PREDICATE, "label == '我的功能'")
driver.find_element_by_ios_predicate("type == 'XCUIElementTypeButton' AND value == 'ClearEmail'")

IOS自动化测试元素定位,Appium自动化,自动化测试,macos,objective-c
   
   1.2.2、范围运算符

   常用的范围运算符有:

IOS自动化测试元素定位,Appium自动化,自动化测试,macos,objective-c
   示例:
driver.find_element(MobileBy.IOS_PREDICATE, "name IN {'id_cell', 'id_alert'}")
driver.find_element_by_ios_predicate("value BETWEEN {5, 7}")
   
   1.2.3、字符串相关

IOS自动化测试元素定位,Appium自动化,自动化测试,macos,objective-c
   以字符串“自动化软件测试”为例:

包含某个字符串:label CONTAINS ‘软件’
以某个字符串开头:label BEGINSWITH ‘自动’
以某个字符串结束:label ENDSWITH ‘测试’

  扩展:在三个关键字后加上[c]、或者[d]、[cd]
[c]:表示不区分大小写,可用于字母的校验;
[d]:不区分发音符号,即没有重音符号($、#等);
[cd]:既不区分大小写,也不区分发音符号;

   例如:name CONTAINS[c] ABcd 和  name CONTAINS abcd是等同的

   示例:

driver.find_element_by_ios_predicate("label CONTAINS ‘软件’")
   
   1.2.4、模糊匹配:LIKE

   模糊匹配也可以称为通配符匹配,?代表一个字符,*代表多个字符。
   示例:现有元素的label属性:“自动化软件测试”
   label LIKE ‘自动化软件测试’   # 完全匹配
   label LIKE ‘自动化?件测试’    # ? 匹配一个字符
   label LIKE ‘自动化??测试’    # 两个?号匹配两个字符
   label LIKE ‘自?化?件测试’
   label LIKE ‘*软件测试’      # *代表多个字符
   label LIKE ‘自动化软件*’
   label LIKE ‘自动化*件测*’

   示例:
driver.find_element(MobileBy.IOS_PREDICATE, "label LIKE ‘*软件测试")
   
   1.2.5、逻辑运算符

IOS自动化测试元素定位,Appium自动化,自动化测试,macos,objective-c
   1.2.6、正则表达式:MATCHES

   以字符串的匹配为例:匹配字符串“自动化软件测试”,以“自”开头,然后以“试”结尾。

   表达式:label MATCHES ‘^自.+试$’

   示例:
driver.find_element(MobileBy.IOS_PREDICATE, " label MATCHES ‘^自.+试$’")
    
    符号说明: ^  匹配字符串的开头
           .   匹配任意字符,除了换行符
           +  匹配 1 个或多个的表达式。
           $  匹配字符串的末尾
 文章来源地址https://www.toymoban.com/news/detail-800547.html

到了这里,关于IOS自动化测试元素定位的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Appium+python自动化(十一)- 元素定位- 下卷超详解)

    List故名思义就是一个列表,在python里面也有list这一个说法,如果你不是很理解什么是list,这里暂且理解为一个数组或者说一个集合。首先一个list是一个集合,那么他的个数也就成了不确定性,所以这里需要用复数,所以在我们定位时我们不能够接着用find_element_by_id等等定位

    2024年02月17日
    浏览(32)
  • app自动化测试之Appium问题分析及定位

    使用 Appium 进行测试时,会产生大量日志,一旦运行过程中遇到报错,可以通过 Appium 服务端的日志以及客户端的日志分析排查问题。 Appium Server日志-开启服务 通过命令行的方式启动 Appium Server,下面来分析一下启动日志,日志第一行显示了 Appium 版本信息和服务在本地的运行

    2024年02月14日
    浏览(26)
  • 2023主流技术 Appium+IOS 自动化测试环境搭建

    关于Appium for IOS Appium是目前最主流的app自动化测试技术,能够同时支持IOS、Android平台上的移动应用自动化测试,能支持众多语言,包括:Java、Python、Ruby、JavaScript等;并且Appium是开源免费使用的。 目前网上的关于Appium的学习教程绝大多数以Android为主,关于IOS端的比较少,而

    2024年02月11日
    浏览(31)
  • 全网最细最全Appium自动化测试 iOS入门教程,App自动化测试教程,精细整理

    目录:导读 一、MAC电脑上 Appium 的安装流程 二、流程图 三、下载AppiumServerGui和AppiumInspector 四、开始测试       1、真机测试                 1.1 准备工作                 1.2 获取 开发包 .app 结尾                 1.3 WebDriverAgent使用                 1.4 配置 Appium Inspec

    2024年02月07日
    浏览(42)
  • Windows系统上运行appium连接iOS真机自动化测试

    步骤: 1、windows安装 tidevice 工具 2、Mac系统打包安装WebDriverAgent(WDA)工具 3、安装Appium 4、连接iOS手机 iOS自动化的实现和执行都依赖Mac系统,因为需要通过Xcodebuild编译安装WDA (WebDriverAgent)到iOS设备中,通过WDA实现对被测应用进行操作。而Windows系统无法运行Xcode工具,所以无法

    2024年04月25日
    浏览(36)
  • iOS+Appium最简单的环境搭建,快速实现真机自动化测试

    整理不易耗时两星期配置成功,查看一两年前的教程文章走了太多弯路到处都是坑和报错 需配置环境:Homebrew、node、cnpm、Carthage、ios-deploy、libimobiledeviceideviceinstaller,Xcode,appiumWebDriverAgent,appium Inspector 1. Homebrew安装 Homebrew简称brew,是Mac上的软件管理工具(卸载和安装),和

    2023年04月27日
    浏览(35)
  • python ui自动化测试元素定位常用语法

    第一部分是css样式定位方法 选择器 示例 示例说明 CSS . class .intro 选择所有class=\\\"intro\\\"的元素 1 # id #firstname 选择所有id=\\\"firstname\\\"的元素 1 * * 选择所有元素 2 element p 选择所有p元素 1 element,element div,p 选择所有div元素和p元素 1 element   element div p 选择div元素内的所有p元素 1 element

    2024年02月13日
    浏览(35)
  • web自动化测试入门篇06 —— 元素定位进阶技巧

      😏 作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。 📡 主页地址:【Austin_zhai】 🙆 目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能,分享行业相关最新信息。 💎 声明:博主日常工作较为繁忙,文章会不定期更新,各类行业或职场问题

    2024年02月05日
    浏览(35)
  • 【selenium自动化测试】如何定位页面元素,及对页面元素的操作方法

    selenium元素定位 ​selenium定位元素的方式有8种。 fild_element(by,value):by表示使用的定位方式,定位方式可以参见By类。value表示值,例如:根据id定位 By.ID,value=id属性的值。该方法返回元素对象,返回值如下: 这个返回结果说明:返回值为WebElement类的对象,元素在使用方法时

    2024年02月10日
    浏览(47)
  • web自动化测试(java+seleium)元素定位,全屏截图

    示例 根据元素的id属性来定位元素 根据元素的name属性来定位元素,但是注意name的属性值在当前文档中可以不是唯一的 通过class定位 通过tag进行定位,tag定位比较模糊,多用于标题等特殊标签 定位超链接文本(文本值) 模糊的link_text定位 能够实现路径定位(绝对路径,相对路径

    2024年02月08日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包