Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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)
like image 382
Daniel Avatar asked May 25 '16 15:05

Daniel


1 Answers

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.

like image 178
Joe Masilotti Avatar answered Oct 13 '22 12:10

Joe Masilotti