Daniel Klöck
Daniel Klöck

Reputation: 21137

UITest: Check if text with prefix exists

While doing a UI test, I can test that a text exists like this:

XCTAssertTrue(tablesQuery.staticTexts["Born: May 7, 1944"].exists)

But, how do I test if a text exist, if I only know the prefix?

I would like to do something like:

XCTAssertTrue(tablesQuery.staticTextWithPrefix["Born: "].exists)

or even better:

XCTAssertTrue(tablesQuery.staticTextWithRegex["Born: .+"].exists)

Upvotes: 7

Views: 3197

Answers (1)

Joe Masilotti
Joe Masilotti

Reputation: 17008

You can use predicates to find elements by prefixes. For example:

let app = XCUIApplication()
let predicate = NSPredicate(format: "label BEGINSWITH 'Born: '")
let element = app.staticTexts.elementMatchingPredicate(predicate)
XCTAssert(element.exists)

Note that this could fail if more than one element matches the predicate. More information can be found in a blog post, a Cheat Sheet for UI Testing.

Upvotes: 11

Related Questions