0

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

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

  1. 标签:使用 id: 'label' 启用可访问性的标签
  2. UIImageView:具有可访问性的 UIImageView 启用了 id: 'accept'

我有这个测试:

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

我在哪里查询这两个视图(带有 id 的标签和带有 idlabel的 UIImageView accept)。从这里:app简单地定义为像这样的类属性:let app = XCUIApplication()

所以,这就是屏幕的样子: 有 2 个项目的表

这意味着这个测试应该通过,因为屏幕上有两个staticTextidlabel和一个imageid acceptstaticTexts 已成功查询,但matching(identifier:)尝试image使用 id查询时失败accept在 ID 为“接受”的图像上测试失败

我试图查询很多东西,比如:

  • app.images.
  • app.tables.
  • app.tables.images.
  • app.tables.cells.images.
  • app.buttons.(也标记为Button辅助功能设置的特征部分)
  • app.staticTexts.(也标记为Static Text辅助功能设置的特征部分)

但没有运气......我在这里做错了什么,或者遗漏了什么?

4

1 回答 1

0

好的,因为我在 QA 团队,所以我对开发代码的关注不多。但当我这样做时,我找到了答案。

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

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

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

于 2017-10-27T08:34:09.473 回答