自动化测试定位方式那么多,应该选哪个?

发布时间:2026/7/1 16:37:16

自动化测试定位方式那么多,应该选哪个? 简介定位策略是用于在自动化测试中定位移动应用界面元素的方法和策略。通过选择合适的定位策略测试人员可以定位和操作应用程序的各种控件如按钮、文本框 、下拉列表等。常见的定位策略包括 ID 定位、XPath 定位、Class Name 定位、AccessibilityID 定位、Name 定位、XPath 模糊定位、Android UI Automator 定位以及 iOS Predicate 定位。通过灵活运用不同的定位策略可以提高自动化测试的稳定性和可靠性。App 定位方式定位策略描述Accessibility ID识别一个唯一的 UI 元素对于 XCUITest 引擎它对应的的属性名是 accessibility-id对于 Android 系统的页面元素对应的属性名是 content-descClass name对于 iOS 系统它的 class 属性对应的属性值会以XCUIElementType开头对于 Android 系统它对应的是 UIAutomator2 的 class 属性(e.g.: android.widget.TextView)ID原生元素的标识符,Android 系统对应的属性名为resource-id,iOS 为nameName元素的名称XPath使用 xpath 表达式查找页面所对应的 xml 的路径不推荐存在性能问题Image通过匹配 base 64 编码的图像文件定位元素Android UiAutomator (UiAutomator2 only)使用 UI Automator 提供的 API, 尤其是 UiSelector 类来定位元素在 Appium 中会发送 Java 代码作为字符串发送到服务器服务器在应用程序的环境中执行这段代码并返回一个或多个元素Android View Tag (Espresso only)使用 view tag 定位元素Android Data Matcher (Espresso only)使用 Espresso 数据匹配器定位元素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。身份属性 idname(web 定位)。组合定位 xpath,css。其它定位。元素定位不到导致 Appium 元素定位不到的原因可能包括定位信息错误、元素未加载完成、元素隐藏或不可见、元素定位策略不准确、Appium 和应用程序版本不兼容以及设备连接或设置问题。要解决这些问题需要确保定位信息正确、等待元素加载完成、使元素可见、选择合适的定位策略、确保版本兼容性以及正确配置和设置设备。原因解决方案定位不正确在定位工具中先测试定位表达式是否正确存在动态 ID定位方式使用 css 或者 xpath 的相对定位页面还没有加载完成添加死等验证使用显式等待或隐式等待进行优化页面有 iframe切换到 iframe 后定位页面切换 window切换到对应窗口后定位要定位元素为隐藏元素使用 js 操作该元素混合定位的应用场景场景属性动态变化idtext。重复元素属性idtextclass。解决根据相对位置关系进行定位css、xpath父级子级兄弟索引。使用 find_elements 遍历查找。参考高级定位技巧章节xpath,css。使用等待机制的场景场景控件动态出现控件出现特定特征解决元素定位结合隐式等待与显式等待特殊控件定位Web 弹框定位场景web 页面 alert 弹框解决web 需要使用 driver.switchTo().alert() 处理App toast 提示框定位场景app Toast 提示框。解决使用 driver.page_source 拿到页面布局结构文件分析 Toast/弹框组件的标签内容。然后通过 id/text/class 等属性使用 xpath 完成元素定位。结合隐式等待。下拉框/日期控件 定位场景标签组合的下拉框无法定位。标签组合的日期控件无法定位。解决面对这些元素可以引入 JS 注入技术来解决问题。文件上传定位场景input 标签文件上传。解决input 标签直接使用 send_keys() 方法。总结在选择定位策略时需要考虑元素的属性、上下文以及应用的特定情况。有时候需要结合多个属性或使用相对定位以确保定位的准确性和稳定性。此外使用隐式等待或显式等待是确保元素加载完成的重要步骤以避免定位超时的问题。最后下方这份完整的软件测试视频教程已经整理上传完成需要的朋友们可以自行领取【保证100%免费】​​​软件测试面试文档我们学习必然是为了找到高薪的工作下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料并且有字节大佬给出了权威的解答刷完这一套面试资料相信大家都能找到满意的工作。

相关新闻