对于UITest,相信能看到这篇文章的都已经知道UITest是做什么的了。但是我在网上找的有关UITest的文章,都是比较简单(也可能是我没找到详细的)。所以就自己写了一下demo,尽量详细的去介绍一下。只贴干货!Demo
在看下面各个解决方法时,请留意一下这行代码
0、如何获取 UITabBarController 的 Item 。
1、如何获取导航栏的返回按钮。
2、如何获取 UIView。
3、如何获取 UILabel。
4、如何获取 UIAlertAction 的按钮。
5、如何获取 keyBorad 的 return 按钮。
6、当不使用 xib 或者 storyboard 时,如何设置控件(UIView、UILabel)的 identifier 。
如果控件是 UILabel 、UITextFiled 或者 UIButton 等可以设置 text 的控件,那么其 identifier 就是 text。
其实不管控件是否可以设置 text,都是可以通过 accessibilityIdentifier 设置的。
7、不知道控件 XCUIElementTypeQueryProvider 的那个key里面。
先给想要找的控件设置 identifier(设置方法网上看),然后再分别log XCUIElementTypeQueryProvider里面的key。然后查看 log 日志,看看想要的找的控件。NSLog 代码需要80多行!不用担心写着很累,我会在底部贴出我写好的。
identifier 最好设置成英文,中文的话会被转码,不好找!!!
8、如何查看 log 的日志。
9、log XCUIElementTypeQueryProvider
NSLog(@"GS: touchBars%@",_app.touchBars.allElementsBoundByAccessibilityElement);
NSLog(@"GS: groups%@",_app.groups.allElementsBoundByAccessibilityElement);
NSLog(@"GS: windows%@",_app.windows.allElementsBoundByAccessibilityElement);
NSLog(@"GS: sheets%@",_app.sheets.allElementsBoundByAccessibilityElement);
NSLog(@"GS: drawers%@",_app.drawers.allElementsBoundByAccessibilityElement);
NSLog(@"GS: alerts%@",_app.alerts.allElementsBoundByAccessibilityElement);
NSLog(@"GS: dialogs%@",_app.dialogs.allElementsBoundByAccessibilityElement);
NSLog(@"GS: dialogs%@",_app.dialogs.allElementsBoundByAccessibilityElement);
NSLog(@"GS: radioButtons%@",_app.radioButtons.allElementsBoundByAccessibilityElement);
NSLog(@"GS: radioGroups%@",_app.radioGroups.allElementsBoundByAccessibilityElement);
NSLog(@"GS: checkBoxes%@",_app.checkBoxes.allElementsBoundByAccessibilityElement);
NSLog(@"GS: disclosureTriangles%@",_app.disclosureTriangles.allElementsBoundByAccessibilityElement);
NSLog(@"GS: popUpButtons%@",_app.popUpButtons.allElementsBoundByAccessibilityElement);
NSLog(@"GS: comboBoxes%@",_app.comboBoxes.allElementsBoundByAccessibilityElement);
NSLog(@"GS: menuButtons%@",_app.menuButtons.allElementsBoundByAccessibilityElement);
NSLog(@"GS: toolbarButtons%@",_app.toolbarButtons.allElementsBoundByAccessibilityElement);
NSLog(@"GS: popovers%@",_app.popovers.allElementsBoundByAccessibilityElement);
NSLog(@"GS: keyboards%@",_app.keyboards.allElementsBoundByAccessibilityElement);
NSLog(@"GS: keys%@",_app.keys.allElementsBoundByAccessibilityElement);
NSLog(@"GS: navigationBars%@",_app.navigationBars.allElementsBoundByAccessibilityElement);
NSLog(@"GS: tabBars%@",_app.tabBars.allElementsBoundByAccessibilityElement);
NSLog(@"GS: tabGroups%@",_app.tabGroups.allElementsBoundByAccessibilityElement);
NSLog(@"GS: toolbars%@",_app.toolbars.allElementsBoundByAccessibilityElement);
NSLog(@"GS: statusBars%@",_app.statusBars.allElementsBoundByAccessibilityElement);
NSLog(@"GS: tables%@",_app.tables.allElementsBoundByAccessibilityElement);
NSLog(@"GS: tableRows%@",_app.tableRows.allElementsBoundByAccessibilityElement);
NSLog(@"GS: tableColumns%@",_app.tableColumns.allElementsBoundByAccessibilityElement);
NSLog(@"GS: outlines%@",_app.outlines.allElementsBoundByAccessibilityElement);
NSLog(@"GS: outlineRows%@",_app.outlineRows.allElementsBoundByAccessibilityElement);
NSLog(@"GS: browsers%@",_app.browsers.allElementsBoundByAccessibilityElement);
NSLog(@"GS: collectionViews%@",_app.collectionViews.allElementsBoundByAccessibilityElement);
NSLog(@"GS: sliders%@",_app.sliders.allElementsBoundByAccessibilityElement);
NSLog(@"GS: pageIndicators%@",_app.pageIndicators.allElementsBoundByAccessibilityElement);
NSLog(@"GS: progressIndicators%@",_app.progressIndicators.allElementsBoundByAccessibilityElement);
NSLog(@"GS: activityIndicators%@",_app.activityIndicators.allElementsBoundByAccessibilityElement);
NSLog(@"GS: segmentedControls%@",_app.segmentedControls.allElementsBoundByAccessibilityElement);
NSLog(@"GS: pickers%@",_app.pickers.allElementsBoundByAccessibilityElement);
NSLog(@"GS: pickerWheels%@",_app.pickerWheels.allElementsBoundByAccessibilityElement);
NSLog(@"GS: switches%@",_app.switches.allElementsBoundByAccessibilityElement);
NSLog(@"GS: toggles%@",_app.toggles.allElementsBoundByAccessibilityElement);
NSLog(@"GS: links%@",_app.links.allElementsBoundByAccessibilityElement);
NSLog(@"GS: images%@",_app.images.allElementsBoundByAccessibilityElement);
NSLog(@"GS: icons%@",_app.icons.allElementsBoundByAccessibilityElement);
NSLog(@"GS: searchFields%@",_app.searchFields.allElementsBoundByAccessibilityElement);
NSLog(@"GS: scrollViews%@",_app.scrollViews.allElementsBoundByAccessibilityElement);
NSLog(@"GS: scrollBars%@",_app.scrollBars.allElementsBoundByAccessibilityElement);
NSLog(@"GS: staticTexts%@",_app.staticTexts.allElementsBoundByAccessibilityElement);
NSLog(@"GS: textFields%@",_app.textFields.allElementsBoundByAccessibilityElement);
NSLog(@"GS: secureTextFields%@",_app.secureTextFields.allElementsBoundByAccessibilityElement);
NSLog(@"GS: datePickers%@",_app.datePickers.allElementsBoundByAccessibilityElement);
NSLog(@"GS: textViews%@",_app.textViews.allElementsBoundByAccessibilityElement);
NSLog(@"GS: menus%@",_app.menus.allElementsBoundByAccessibilityElement);
NSLog(@"GS: menuItems%@",_app.menuItems.allElementsBoundByAccessibilityElement);
NSLog(@"GS: menuBars%@",_app.menuBars.allElementsBoundByAccessibilityElement);
NSLog(@"GS: menuBarItems%@",_app.menuBarItems.allElementsBoundByAccessibilityElement);
NSLog(@"GS: maps%@",_app.maps.allElementsBoundByAccessibilityElement);
NSLog(@"GS: webViews%@",_app.webViews.allElementsBoundByAccessibilityElement);
NSLog(@"GS: steppers%@",_app.steppers.allElementsBoundByAccessibilityElement);
NSLog(@"GS: incrementArrows%@",_app.incrementArrows.allElementsBoundByAccessibilityElement);
NSLog(@"GS: decrementArrows%@",_app.decrementArrows.allElementsBoundByAccessibilityElement);
NSLog(@"GS: tabs%@",_app.tabs.allElementsBoundByAccessibilityElement);
NSLog(@"GS: timelines%@",_app.timelines.allElementsBoundByAccessibilityElement);
NSLog(@"GS: ratingIndicators%@",_app.ratingIndicators.allElementsBoundByAccessibilityElement);
NSLog(@"GS: valueIndicators%@",_app.valueIndicators.allElementsBoundByAccessibilityElement);
NSLog(@"GS: splitGroups%@",_app.splitGroups.allElementsBoundByAccessibilityElement);
NSLog(@"GS: splitters%@",_app.splitters.allElementsBoundByAccessibilityElement);
NSLog(@"GS: relevanceIndicators%@",_app.relevanceIndicators.allElementsBoundByAccessibilityElement);
NSLog(@"GS: colorWells%@",_app.colorWells.allElementsBoundByAccessibilityElement);
NSLog(@"GS: helpTags%@",_app.helpTags.allElementsBoundByAccessibilityElement);
NSLog(@"GS: mattes%@",_app.mattes.allElementsBoundByAccessibilityElement);
NSLog(@"GS: dockItems%@",_app.dockItems.allElementsBoundByAccessibilityElement);
NSLog(@"GS: rulers%@",_app.rulers.allElementsBoundByAccessibilityElement);
NSLog(@"GS: rulerMarkers%@",_app.rulerMarkers.allElementsBoundByAccessibilityElement);
NSLog(@"GS: grids%@",_app.grids.allElementsBoundByAccessibilityElement);
NSLog(@"GS: levelIndicators%@",_app.levelIndicators.allElementsBoundByAccessibilityElement);
NSLog(@"GS: cells%@",_app.cells.allElementsBoundByAccessibilityElement);
NSLog(@"GS: layoutAreas%@",_app.layoutAreas.allElementsBoundByAccessibilityElement);
NSLog(@"GS: layoutItems%@",_app.layoutItems.allElementsBoundByAccessibilityElement);
NSLog(@"GS: handles%@",_app.handles.allElementsBoundByAccessibilityElement);
NSLog(@"GS: otherElements%@",_app.otherElements.allElementsBoundByAccessibilityElement);
NSLog(@"GS: statusItems%@",_app.statusItems.allElementsBoundByAccessibilityElement);