XCUIElementQuery.matching(identifier:) 不适用于 UIImageView

XCUIElementQuery.matching(identifier:) is not working for UIImageView

我正在尝试实施一个非常简单的测试,但我坚持使用 XCUIElementQuery.matching(identifier:) 方法。我认为查询 UIImageViews 没有按预期工作,但不确定原因。

我为视图设置了这两个设置:

  1. 标签:
  2. UIImageView:

我有这个测试:

func testRecording() {
    XCTAssertEqual(app.staticTexts.matching(identifier: "label").count, 2)
    XCTAssertEqual(app.images.matching(identifier: "accept").count, 1)
}

我在其中查询这两个视图(带有 id label 的标签和带有 id accept 的 UIImageView)。从这里开始: app 被简单地定义为 class 属性 像这样: let app = XCUIApplication().

所以,这是屏幕的样子:

这意味着该测试应该通过,因为屏幕上有两个 ID 为 labelstaticText 和一个 ID 为 acceptimagestaticText 正在成功查询,但当 matching(identifier:) 尝试使用 ID accept 查询 image 时失败:

我尝试查询很多东西,例如:

但运气不好...我在这里做错了什么,或者遗漏了什么吗?

好的,因为我在 QA 团队,所以我没怎么看开发代码。但是当我这样做的时候,我找到了答案。

用于显示复选标记的 UIImageView 从未在 .xib 文件中使用,而是始终分配一个新实例,如下所示:

indicatorView = UIImageView(image: #imageLiteral(resourceName: "arrow_marked_ok_small"))

这意味着新的可访问性选项是通过初始化程序调用设置的,因此我在前两张图片中发布的具有来自 .xib 文件的可访问性选项的旧 UIImageView 实例将被覆盖。