simpleBob simpleBob - 1 year ago 79
Swift Question

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)

Answer Source

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)

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.