Xcode录制UI测试:如何移除XCTestCase自动生成代码的下拉框
解决Xcode UI测试录制代码中多余下拉框代码的问题
我之前也踩过这个坑!当用Xcode自带的UI测试录制功能生成代码时,确实经常会出现一堆你不需要的下拉框(Picker)相关代码——要么是操作时误触了下拉控件,要么是Xcode的元素识别太“热心”,把无关的Picker也抓进来了。这里有几个实用的解决方法:
手动清理冗余代码
录制完成后,直接定位到代码里的下拉框操作部分——通常是包含picker()、adjust(toPickerWheelValue:)这类方法的代码块,直接删掉就行。比如如果生成了这样的代码:app.pickers["UserRolePicker"].adjust(toPickerWheelValue: "Admin")要是这段操作不是你测试需要的,直接删除整行或者相关代码块就搞定。
录制时精准操作,避免误触发
录制过程中尽量精准点击目标元素,别碰到下拉框区域;如果某个下拉框是测试无关的,可以临时在Storyboard/XIB里关闭它的可访问性(勾选Accessibility里的Enabled为NO,测试完记得改回来),这样Xcode录制时就不会识别到这个下拉框了。手动编写UI测试代码,摆脱录制依赖
其实录制只是个快速生成雏形的工具,你完全可以基于录制的代码进行修改,或者直接手动编写测试代码,这样能完全掌控代码内容,根本不会出现多余的下拉框代码。比如手动定位按钮并点击:let confirmButton = app.buttons["ConfirmAction"] XCTAssertTrue(confirmButton.isHittable) confirmButton.tap()调整Xcode的元素识别设置
打开Xcode偏好设置(Xcode > Settings),切换到Testing标签页,看看有没有元素识别精度相关的选项,适当调整可以减少对Picker元素的自动捕获。不过这个选项作用有限,还是前面的方法更直接。
内容的提问来源于stack exchange,提问作者amleszk
相关产品推荐
相关产品推荐

