ios – Xcode UI测试 – 添加了addSubview的Uiviews对UI测试完全不可见

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

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

我有这个观点:

《ios – Xcode UI测试 – 添加了addSubview的Uiviews对UI测试完全不可见》

这个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)

提示下一个错误:

《ios – Xcode UI测试 – 添加了addSubview的Uiviews对UI测试完全不可见》

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

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

最佳答案 你好,我用tableView和你的容器来做一个示例项目

并将容器添加到tableView

试试这个例子:)

app.tables.staticTexts[“labelIdentifier”]

《ios – Xcode UI测试 – 添加了addSubview的Uiviews对UI测试完全不可见》

点赞