UItesting: нажмите на UIcollectionview, а затем протестируйте его

Я новичок в UI-тестировании. Во время записи, когда я нажимаю на представление пользовательского интерфейса, первый объект отображается в пользовательском интерфейсе и соответствует коду, написанному в методе test-example:

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

А при автоматизации метода test-example он не может получить первый объект представления пользовательского интерфейса. Пожалуйста, предложите способ сделать это. Заранее спасибо.

1 ответ

Решение

Запись UITests имеет тенденцию давать вам действительно длинные и уродливые запросы. Я настоятельно рекомендую вам посмотреть, как писать UITests вручную. Это действительно легко, и запросы выглядят намного лучше.

Например: чтобы нажать на первую ячейку просмотра вашей коллекции, все, что вам нужно сделать, это (при условии, что есть только одна UICollectionView на текущем экране):

Objective-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()
}
Другие вопросы по тегам