写点什么

软件测试开发 / 全日制丨自动化测试定位策略 学习笔记

作者:测试人
  • 2024-01-04
    北京
  • 本文字数:1559 字

    阅读完需:约 5 分钟

本文转自测试人社区,霍格沃兹测试开发学社学员笔记

原文链接: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 推荐 classandroid 推荐 content-descriptionios 推荐 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 全方位辅导作业+考试强化学习效果

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


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


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



发布于: 刚刚阅读数: 4
用户头像

测试人

关注

专注于软件测试开发 2022-08-29 加入

霍格沃兹测试开发学社,测试人社区:https://ceshiren.com/t/topic/22284

评论

发布
暂无评论
软件测试开发/全日制丨自动化测试定位策略 学习笔记_软件测试_测试人_InfoQ写作社区