kubi
kubi

Reputation: 49384

UITests in Xcode 7 finds wrong 'Next' button

I have a test that looks like the following:

func testNextButtonDisabled() {
  let app = XCUIApplication()
  XCTAssertFalse(app.buttons["Next"].enabled)
}

This test fails because, in addition to my own "Next" button that I've created, the keyboard return button is labeled 'Next'. This test fails with the error:

UI Testing Failure - Multiple matches found

How can I differentiate between my own 'Next' button and the keyboard 'Next' button?

Upvotes: 6

Views: 2900

Answers (1)

kubi
kubi

Reputation: 49384

The specific solution to this problem is to look for elements that are descendants of the main window.

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

For a general solution to solve problems like this: In Xcode run the "Record UI Test" again to see how Xcode thinks you should be referencing the element in which you're interested.

Upvotes: 8

Related Questions