我目前在编写自动化测试时通过其可访问性标签检测元素?这会导致很多问题。
- 这是检测元素的正确方法吗?
- 如果没有,是否有更好的方法来检测元素而不使用可访问性标签?
我目前在编写自动化测试时通过其可访问性标签检测元素?这会导致很多问题。
UI 自动化使用可访问性标签(如果已设置)为每个元素派生名称属性。除了明显的好处之外,使用这样的名称还可以大大简化测试脚本的开发和维护。
name 属性是这些元素的四个属性之一,在您的测试脚本中非常有用。
不明白“这会导致很多问题”是什么意思。通过 Automation Instrument 中的可访问性属性访问元素非常容易。
var button = UIATarget.localTarget().frontMostApp().mainWindow().buttons()["Cancel"];
当然,您也可以通过它们在屏幕上的顺序来访问元素。例如:
var button = UIATarget.localTarget().frontMostApp().mainWindow().buttons()[3];
将参考屏幕上的第 4 个按钮(它们从 0 开始编号)标签。但是,如果您决定在应用程序的下一个版本中重新排列屏幕上的元素,此方法可能会破坏您的测试,因此通过可访问性标签访问它们会更安全。
此外,可访问性元素使依赖 VoiceOver 使用应用程序界面的人(残障人士)更容易访问您的应用程序,因此在进行界面测试时使用可访问性属性会迫使您为您的应用程序构建更好的可访问性。