在Swift 3 UI测试中访问自定义视图组件中的元素

Chr*_*han 2 iphone unit-testing ios xcode-ui-testing swift3

我是任何类型的iOS编程的新手.我正在尝试为我的一个场景编写UI测试用例.

以下是我使用recode方法并点击自定义组件时得到的代码.

let button = XCUIApplication().children(matching: .window).element(boundBy: 0).children(matching: .other).element.children(matching: .button).element
Run Code Online (Sandbox Code Playgroud)

在此自定义组件中有两个按钮.我想知道选择了哪个按钮.为此我需要识别按钮.但是我得到了相同的代码,我点击自定义视图.

如何访问自定义视图中的每个组件.任何帮助都会很棒.

Ole*_*tha 7

在应用程序代码中向自定义视图添加辅助功能标识符.

let customView: UIView!
customView.accessibilityIdentifier = "myCustomView"
Run Code Online (Sandbox Code Playgroud)

然后访问这样的内容:

let app = XCUIApplication()
let customView = app.otherElements["myCustomView"]
let button1 = customView.buttons.element(boundBy: 0)
let button2 = customView.buttons.element(boundBy: 1)
XCTAssertTrue(button1.isSelected)
XCTAssertFalse(button2.isSelected)
Run Code Online (Sandbox Code Playgroud)

请注意,为了使测试具有确定性,您应该已经知道应该选择哪个按钮.这可确保您的测试每次运行时都测试相同的内容.