2015-11-07 4 views
1

Возможно, я неправильно понимаю, как работают запросы и xcuielements, но я хотел бы повторить результаты запроса.Как перебирать несколько XCUIElements

В моем приложении у меня есть номер отправленного текста/номер, полученный дважды на экране моего приложения. Я хотел бы проверить, что оба номера одинаковы. Например, следующий текст на моем экране.

10/10 
0/0 

Я использую следующий код, чтобы найти эти два статических текстовых элементы

XCUIElement *staticTexts = [self.app.staticTexts elementMatchingPredicate:[NSPredicate predicateWithFormat:@"label contains '/'"]]; 

Это распаковывает мне два статических текстовые элементы, но у меня нет никакого способа итерации через два, чтобы проверить метки. Если бы был только один найденный элемент, проблем не было бы, к сожалению, их было два. Если есть лучший способ сделать это, скажите мне. Я новичок в тестировании пользовательского интерфейса.

ответ

1

Метод, который вы вызываете, -elementMatchingPredicate: возвращает только элемент. Обратите внимание, что имя метода является единственным. При попытке вызвать любой метод на возвращаемом объекте будет выведено исключение.

Предлагаю несколько иной подход к вашим испытаниям. Поскольку вы пишите тест , вы принимаете, каково должно быть первое число. Затем вы можете использовать это, чтобы убедиться, что второе число одинаково.

Для этого просто установите разные -accessibilityIdentifier s на каждую из этикеток. Затем вы можете утверждать каждый по отдельности.

XCUIApplication *app = [[XCUIApplication alloc] init]; 
XCTAssertEqual(app.staticTexts[@"Number Input"].value, @"867-5309"); 
XCTAssertEqual(app.staticTexts[@"Number Confirm"].value, @"867-5309"); 

 Смежные вопросы

  • Нет связанных вопросов^_^