Xcode UI测试 - 使用addSubview添加的Uiviews对UI测试完全不可见

时间:2016-06-22 15:37:30

标签: ios testing xcode-ui-testing ui-testing

我一直试着在XCode 7.3上进行新的UI测试,我发现它对我来说似乎是一个错误。

问题是通过“ addSubview ”方法添加的视图似乎对UI测试系统完全不可见。

我有这个观点:

enter image description here

这个UIview创建代码:

    let container = UIView(frame: CGRectMake(0, 0, 375, 200))
    container.backgroundColor = UIColor.orangeColor()
    container.isAccessibilityElement = false
    let label = UILabel(frame: CGRectMake(0, 100, 375, 20))
    label.backgroundColor = UIColor.yellowColor()
    label.textAlignment = NSTextAlignment.Center
    label.accessibilityIdentifier = "labelIdentifier"
    label.text = "I am a label"
    container.addSubview(label)

这个简单的UI测试:

func testExample() {

    let final  = XCUIApplication().staticTexts.containingType(.StaticText, identifier: "labelIdentifier").element
    XCTAssertEqual(final.label, "I am a label")
}

问题是,根据我附加橙色视图的方式,测试找不到标签。如果我这样做:

    self.tableView.tableHeaderView = container

测试通过完全没有任何问题,但附加:

    self.tableView.addSubview(container)

提示下一个错误:

enter image description here

在论坛中挖了一点后,我已经测试了所有推荐的设置,例如设置为false容器“ isAccessibilityElement ”属性等等,但似乎没有任何效果。

长话短说。 ¿任何人都试图通过添加“ addSubview ”方法将元素附加到其他UIView上?

2 个答案:

答案 0 :(得分:2)

您好我使用tableView和您的容器

创建了一个示例项目

并将容器添加到tableView

试试这个例子:)

  

app.tables.staticTexts [" labelIdentifier"]

enter image description here

答案 1 :(得分:0)

您是否尝试过Xcode录制才能获得该视图? 只需记录并按下您的视图即可正常运行

同时确保此UILabel不是“您可以使用Xcode检查”