Xcode 7中的UITests找到错误的"下一步"按钮

kub*_*ubi 6 xcode ui-testing xctest xcode-ui-testing

我有一个如下所示的测试:

func testNextButtonDisabled() {
  let app = XCUIApplication()
  XCTAssertFalse(app.buttons["Next"].enabled)
}
Run Code Online (Sandbox Code Playgroud)

此测试失败,因为除了我自己创建的"下一步"按钮外,键盘返回按钮标有"下一步".此测试失败并显示错误:

UI测试失败 - 找到多个匹配项

如何区分我自己的"下一步"按钮和键盘"下一步"按钮?

kub*_*ubi 8

此问题的具体解决方案是查找作为主窗口后代的元素.

func testNextButtonDisabled() {
  let app = XCUIApplication()
  XCTAssertFalse(app.childrenMatchingType(.Window).elementBoundByIndex(0).buttons["Next"].enabled)
}
Run Code Online (Sandbox Code Playgroud)

对于解决这样的问题的一般解决方案:在Xcode中再次运行"记录UI测试"以查看Xcode如何认为您应该引用您感兴趣的元素.