Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS UI自动化-如何在具有可访问性属性的UITableCell中找到所有UILabel?_Ios_Testing_Accessibility_Instruments - Fatal编程技术网

iOS UI自动化-如何在具有可访问性属性的UITableCell中找到所有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

我觉得在iOS UI自动化过程中,UI控件的可访问性属性很难理解。 我有一个表格单元格,它有许多UILabel作为孩子。我打算为一些UILabel设置可访问性标签,以便在测试脚本中获得它们的值

我所期望的是:

        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属性是这些元素的四个属性之一,在测试脚本中非常有用

  • 名字。从可访问性标签派生
  • 价值观。控件的当前值,例如,文本字段中的文本
  • 元素。当前元素中包含的任何子元素,例如,表视图中的单元格
  • 家长。包含当前元素的元素
非常感谢有人帮助我理解