????· demo
??????????????????????????????????????????????????????????????


????
????1


????
????2


????
????3

????????????????
????- (void)testExample {
????XCUIApplication *app = [[XCUIApplication alloc] init];
????[app.buttons[@"???"] tap];
????XCUIElement * textFiled = [app.textFields elementMatchingType:XCUIElementTypeTextField identifier:@"test"];
????[textFiled tap];
????[textFiled typeText:@"user"];
????XCUIElement * textFiled2 = [app.textFields elementMatchingType:XCUIElementTypeTextField identifier:@"hello"];
????if ([textFiled2 exists]){
????[textFiled2 tap];
????[textFiled2 typeText:@"123456"];
????}
????[app.buttons[@"???"] tap];
????}
??????????????????????????????????????????????UIButton????UITextFiled?????????е??????????????????????????????????app.buttons[@"???"]??y????????title?????????????????elementMatchingType:identifier:????????????????????identifier??????λ???????


????
identifier

????????Accessibility????????????????XCUIElement???????ú??λ???????????Accessibility?е?label??????д?????????????????????
????- (XCUIElement *)getElemWithLabel:(NSString *)str type:(XCUIElementType)type{
????XCUIApplication *app = [[XCUIApplication alloc] init];
????XCUIElementQuery * list = [app descendantsMatchingType:type];
????for (int i = 0 ; i < list.count ; i++) {
????XCUIElement * tmpElem =[list elementBoundByIndex:i];
????if ([tmpElem.label isEqualToString:str]) {
????return tmpElem;
????}
????}
????return  nil;
????}
????ps???????elementMatchingType:identifier:??identifier????????????????????????????????ò?????????????????bug??
???????
????UI Tests????????UI??????????????????????????????棬???????????????????????????????????????????????????????????????????????????????????????????????????????
????UI Tests??????????????????????????????????????????????????????????????????????????????????????????????