UItesting:单击UIcollectionview然后测试它失败

时间:2017-10-11 14:52:01

标签: ios objective-c xcode uicollectionview xcode-ui-testing

我是ui-testing的新手。在录制期间,当我点击 ui-collection视图时,第一个对象显示在UI上,并且对应于以测试示例方法编写的代码:

XCUIElement *window = [[app childrenMatchingType:XCUIElementTypeWindow] elementBoundByIndex:0];
    XCUIElement *element2 = [[[[window childrenMatchingType:XCUIElementTypeOther].element childrenMatchingType:XCUIElementTypeOther].element childrenMatchingType:XCUIElementTypeOther].element childrenMatchingType:XCUIElementTypeOther].element;
    [element2 tap]; 

当自动化测试示例方法时,它无法获取ui-collection视图的第一个对象。请建议一种方法来做到这一点。 提前谢谢。

1 个答案:

答案 0 :(得分:2)

录制UITests往往会给你真正漫长而丑陋的疑问。我强烈建议您查看如何手动编写UITests。它非常简单,查询看起来更好。

例如:要点按集合视图的第一个单元格,您需要做的就是这个(假设当前屏幕上只有一个UICollectionView):

<强>目标C

- (void)testExample {
    XCUIApplication *app = [[XCUIApplication alloc] init];
    [app launch];

    [[app.collectionViews.cells elementBoundByIndex:0] tap];
}

<强>夫特

func testExample() {
    let app = XCUIApplication()
    app.launch()

    // tap on the first collection view cell on the current screen
    app.collectionViews.cells.element(boundBy:0).tap()
}