iOS UI自动化-如何在具有可访问性属性的UITableCell中找到所有UILabel?
我觉得在iOS UI自动化过程中,UI控件的可访问性属性很难理解。 我有一个表格单元格,它有许多UILabel作为孩子。我打算为一些UILabel设置可访问性标签,以便在测试脚本中获得它们的值 我所期望的是:iOS UI自动化-如何在具有可访问性属性的UITableCell中找到所有UILabel?,ios,testing,accessibility,instruments,Ios,Testing,Accessibility,Instruments,我觉得在iOS UI自动化过程中,UI控件的可访问性属性很难理解。 我有一个表格单元格,它有许多UILabel作为孩子。我打算为一些UILabel设置可访问性标签,以便在测试脚本中获得它们的值 我所期望的是: UIATableView "(null)" {{0, 64}, {320, 504}} elements: { UIATableCell elements: { UIAStaticText
UIATableView "(null)" {{0, 64}, {320, 504}}
elements: {
UIATableCell
elements: {
UIAStaticText "YIAllOrderCell_TitleLbl" {{0, 99}, {320, 163}}
UIAStaticText "YIAllOrderCell_OrderStatusLbl" {{0, 99}, {320, 163}}
UIAStaticText "YIAllOrderCell_IdLbl" {{0, 99}, {320, 163}}
}
UIATableCell
elements: {
UIAStaticText "YIAllOrderCell_TitleLbl" {{0, 297}, {320, 163}}
UIAStaticText "YIAllOrderCell_IdLbl" {{0, 297}, {320, 163}}
UIAStaticText "YIAllOrderCell_OrderStatusLbl" {{0, 297}, {320, 163}}
}
}
但事实上我得到了:
UIATableView "(null)" {{0, 64}, {320, 504}}
elements: {
UIATableCell "YIAllOrderCell_TitleLbl, YIAllOrderCell_OrderStatusLbl, YIAllOrderCell_IdLbl" {{0, 99}, {320, 163}}
elements: {
UIAStaticText "YIAllOrderCell_TitleLbl, YIAllOrderCell_OrderStatusLbl, YIAllOrderCell_IdLbl" {{0, 99}, {320, 163}}
}
UIATableCell "YIAllOrderCell_TitleLbl, YIAllOrderCell_OrderStatusLbl, YIAllOrderCell_IdLbl" {{0, 297}, {320, 163}}
elements: {
UIAStaticText "YIAllOrderCell_TitleLbl, YIAllOrderCell_OrderStatusLbl, YIAllOrderCell_IdLbl" {{0, 297}, {320, 163}}
}
}
似乎Instruments将表单元格中的所有UILabel控件视为单个UIAStaticText,这不是我所期望的
另一个困惑是,一旦我为UILabel启用了可访问性,在自动化脚本中,它的名称将成为可访问性标签,它的value属性将不返回任何内容
根据我的观察,官方文件对我来说模棱两可:
UI自动化使用可访问性标签(如果已设置)为每个元素派生名称属性。除了明显的好处之外,使用这些名称可以大大简化测试脚本的开发和维护
name属性是这些元素的四个属性之一,在测试脚本中非常有用
- 名字。从可访问性标签派生
- 价值观。控件的当前值,例如,文本字段中的文本
- 元素。当前元素中包含的任何子元素,例如,表视图中的单元格
- 家长。包含当前元素的元素