本文转自测试人社区,霍格沃兹测试开发学社学员笔记
原文链接:https://ceshiren.com/t/topic/29506

App定位方式

  • Accessibility id: 识别一个唯一的 UI 元素,对于 XCUITest 引擎,它对应的的属性名是 accessibility-id,对于 Android 系统的页面元素,对应的属性名是 content-desc
  • Class name: 对于 iOS 系统,它的 class 属性对应的属性值会以XCUIElementType开头,对于 Android 系统,它对应的是 UIAutomator2 的 class 属性(e.g.: android.widget.TextView)
  • ID: 原生元素的标识符,Android 系统对应的属性名为resource-id,iOS 为name
  • Name: 元素的名称
  • Xpath: 使用 xpath 表达式查找页面所对应的 xml 的路径(不推荐,存在性能问题)

App 定位方式进阶

  • Image: 通过匹配 base 64 编码的图像文件定位元素
  • Android Uiautomator(Uiautomator2 Only): 使用Uiautomator 提供的API, 尤其是UiSelector 类来定位元素, 在Appium中 会发生java代码作为字符串发送到服务器,服务器在应用程序的环境中执行这段代码,并返回一个或多个元素
  • Android View Tag(Espressor only): 使用 view tag定位元素
  • Android Data Macther(Espressor only): 使用Espressor数据匹配器定位元素
  • IOS UIAutomation: 在IOS 应用程序自动化时,可以使用苹果的 instruments 框架查找元素

Web定位方式

  • class name: 通过 class 属性定位元素
  • css selector: 通过匹配css selector 定位元素
  • id: 通过 id 属性匹配元素
  • name: 通过 name 属性定位元素
  • link text: 通过 text 标签中间的text文本定位元素
  • partial link text: 通过 text 标签中间的text文本的部分内容定位元素
  • tag name: 通过 tag 名称定位元素
  • xpath: 通过 xpath 表达式匹配元素

选择定位器通用原则

  • 与研发约定的属性优先

    • web 推荐 class
    • android 推荐 content-description
    • ios 推荐 label
  • 身份属性 id,name(web 定位)
  • 组合定位 xpath,css
  • 其它定位

Web 弹框定位

web 需要使用 driver.switchTo().alert() 处理

App toast 提示框定位

  • 使用 driver.page_source 拿到页面布局结构文件,分析 toast/弹框组件的标签内容,
  • 然后通过 id/text/class 等属性,使用 xpath 完成元素定位
  • 结合 隐式等待

下拉框/日期控件定位

  • 场景:

    • 标签组合的下拉框无法定位
    • 标签组合的日期控件无法定位
  • 解决:

    • 面对这些元素,我们可以引入 JS 注入技术来解决问题。

文件上传定位

  • 场景:

    • input 标签文件上传
  • 解决:

    • input 标签直接使用 send_keys()方法

推荐

Python全栈开发与自动化测试开发班

由浅入深实战进阶,从小白到高手

以Python全栈开发为基础,深入教授自动化测试技能,为学员打造全面的技术能力。通过系统学习和实际项目实战,学员将具备在职场中脱颖而出的竞争力。不仅能够灵活运用Python进行开发,还能够保障项目质量通过自动化测试手段。这是一个全面提升职业竞争力的机会。

课程详情

Python开发必备基础技能与项目实战

Pvthon 编程语言/算法和数据结构/面向对象编程Web后端开发/前端开发/测试管理平台项目实战

人工智能ChatGPT实战

人工智能辅助学习各种开发和测试技能/Pytorch深度学框架/平台开发实战

数据分析与自动化办公

数据采集/Pandas与数据处理技术/ECharts与数据可视化技术/爬虫实战/自动化办公/批量文件处理

UI自动化测试与高级项目实战

Web自动化测试/App自动化测试/ PageObject设计模式

接口自动化测试

接口协议分析/Mock实战/服务端接口测试

性能测试

性能测试流程与方法/JMeter 脚本参数化/Grafana监控系统搭建

简历指导与模拟面试

1V1简历指导/模拟真实面试/测试开发岗面试全攻略名企私教服务 名企专家1v1辅导/行业专家技术指导/针对性解决工作难题/绩效提升辅导与晋升复盘

课程亮点

名企私教服务  先学习后付费 高额奖学金

专属社群+晚自习在线答疑

5V1全方位辅导作业+考试强化学习效果

简历修改 模拟面试 就业内推 面试复盘

image.png  

福利一: 测试开发精品课免费学

image.png  

福利二:免费领取技能图谱&大厂面试题合集

image.png

e4de1166c0b6a944f3fe30fdd71e77f.png


用户bPc5q3Z
12 声望1 粉丝