如何在SwiftUI中正确设置可访问性标识符?

时间:2020-03-11 13:41:59

标签: ios swift appium swiftui xcuitest

我希望能够在我的视图堆栈上点击一个具体的按钮。为此,首先我在代码上设置了可访问性ID:

UPDATE T2    
      SET T2.COL1 = (CASE WHEN COLS = 'COL1' THEN NULL ELSE T2.COL1 END),
          T2.COL2 = (CASE WHEN COLS = 'COL2' THEN NULL ELSE T2.COL2 END),
          T2.COL3 = (CASE WHEN COLS = 'COL3' THEN NULL ELSE T2.COL3 END)
FROM table2 AS T2 CROSS JOIN
     table1 AS T1
WHERE FLAG = 1;

因此,然后在我的文本案例中,我尝试查找该ID:

Button(action: {
                 withAnimation(.easeOut(duration: 1)) {
                    self.modalShown.toggle()
                 }

                }) {
                      FilterButton()
                     .accessibility(identifier: "modalFilterViewBtn")
                    }
                    .buttonStyle(PlainButtonStyle())
                }

结果是:使用给定的搜索参数无法在页面上找到元素。(..)

最后,如果我使用Appium检查器知道所需元素的可访问性ID,则它似乎是另一个名称,与我在代码中设置的名称不同:

enter image description here

即使我寻找具有id(“ Filter”)的元素,在我的测试案例中也找不到它。

那么,使用SwiftUI设置此可访问性ID的正确方法是什么?

谢谢

1 个答案:

答案 0 :(得分:6)

我认为应该是这样

Button(action: {
    // action here
}) {
    // button label view here
}
.buttonStyle(PlainButtonStyle())
.accessibility(identifier: "modalFilterViewBtn")