UITest在UITableViewCell内查询UIImage

时间:2016-06-23 18:45:59

标签: swift uitableview xcode-ui-testing

我正在针对iOS应用程序在Swift中编写UI测试,该应用程序包含UITableView,其中包含从笔尖加载的自定义UITableViewCell。该单元格包含UIImageViewUILabel

渲染表格时,没有找到图像元素的XCUIElementQuery。如何在UI测试期间访问ImageView以了解图标字段中指定的图像的来源?

class MyCell: UITableViewCell {
    @IBOutlet var name: UILabel!
    @IBOutlet var icon: UIImageView!
}

图片未显示在app.imagesapp.tables.cells.imagesapp.tables.cells.otherElements中。似乎在UI层次结构中找不到图像图标。

2 个答案:

答案 0 :(得分:2)

现在已经很晚了,但其他用户......

我解决了它如下:

  1. 为表添加accessibilityIdentifier。
  2. self.tableView.accessibilityIdentifier = "ExampleTableView"

    1. 将imageView isAccessibilityElement设置为true !!!
    2. <强> cell.icon.isAccessibilityElement = true

      1. 变量中的图像名称,并设置accessibilityLabel的变量名称图像。
      2. let imageName = "example_image"

        cell.icon.accessibilityIdentifier = "ExampleTableViewCellIcon"

        cell.icon.accessibilityLabel = imageName

        cell.icon.image = UIImage(named: imageName)!

        1. 测试
        2. XCTAssert(app.tables["ExampleTableView"].cells.element(boundBy: 0).images[ExampleTableViewCellIcon].label == "example_image")

答案 1 :(得分:0)

在UI测试中无法访问图像的路径。框架将用户视为应用程序,为什么有人会关心复选标记的文件名?

更新:要将用户界面/辅助功能与不同的图标相关联,您可以在设置图像时设置辅助功能标识符。

MyCell().icon?.accessibilityIdentifier = "check"