有多种方法可以在页面上查找元素(名称、id、xpath、内容描述、类名)。
对于 API > 18 的设备,id 效果很好,但如果它是 API < 18,则需要将 content-description 添加到元素中。按名称 查找元素看起来也不错,但我的情况并非如此。
我以前从未使用过 xPath,现在看来它是最好的选择。
我正在编写一个使用 Appium 并允许测试人员同时在多个 Android 设备上测试该应用程序的自动化应用程序。因此,我希望有一个最适合所有情况的方法,而不是为每个版本编写不同的测试类/方法。
谢谢
最佳答案
请避免使用 xPath 作为定位器策略。如果应用程序处于 Activity 开发/支持周期,您将不得不一次又一次地修改 xPath。相反,与开发人员一起提出定位器策略并解释它的需求和目的
我附上了 UIAutomator 屏幕截图,其中包含我们按优先顺序遵循的标识符和定位器策略
Resource-id - 大部分时间此元素保持唯一,除非不必要地摆弄。此定位器通常保持唯一
占位符文本 a.k.a 文本也可以作为定位器策略为您提供很好的服务,但同样应在项目启动期间就此达成一致。很难为来自不同屏幕的相似元素维护(编码)不同的定位器策略
内容描述
如果上述所有策略都失败了,类和索引的组合也可以很好地为您服务
我建议尽可能避免使用 Xpath 和坐标定位器策略。最终在App生命周期内未能通过测试
如果应用程序是跨平台的并且您需要有通用的定位器策略,那就完全不同了。例如:- Accessibility id (IOS) 与 Resource-id (Android) 不同
最好将 IOS 平台中的 Accessibility id 映射到上述针对 Android 平台的定位器策略之一。同样,这必须在项目启动期间就正确地达成一致并计划好/插入/达成一致,否则当你在启动时可能会感到沮丧:-)
示例代码来自 github这可能会有一些帮助!
关于java - 哪个选择器最适合 Appium 测试不同版本的设备?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25317958/