From fd496b4bfa1b4460066eabba776ed9f4666814af Mon Sep 17 00:00:00 2001 From: "rafael.chavez" Date: Mon, 28 Mar 2016 18:00:55 -0700 Subject: [PATCH] Added query by NSPredicate String capability. --- XCTWebDriverAgentLib/Commands/FBFindElementCommands.m | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/XCTWebDriverAgentLib/Commands/FBFindElementCommands.m b/XCTWebDriverAgentLib/Commands/FBFindElementCommands.m index 353a2a757a..c5472e04c9 100644 --- a/XCTWebDriverAgentLib/Commands/FBFindElementCommands.m +++ b/XCTWebDriverAgentLib/Commands/FBFindElementCommands.m @@ -149,6 +149,8 @@ + (NSArray *)elementsUsing:(NSString *)usingText withValue:(NSString *)value und elements = [self descendantsOfElement:element withClassName:value]; } else if ([usingText isEqualToString:@"xpath"]) { elements = [self descendantsOfElement:element withXPathQuery:value]; + } else if ([usingText isEqualToString:@"predicate string"]) { + elements = [self descendantsOfElement:element withPredicateString:value]; } else if (isSearchByIdentifier) { elements = [self descendantsOfElement:element withIdentifier:value]; } else { @@ -206,6 +208,13 @@ + (void)descendantsOfElement:(XCUIElement *)element withProperty:(NSString *)pro [results addObjectsFromArray:childElements]; } +#pragma mark - Search by Predicate String ++ (NSArray *)descendantsOfElement:(XCUIElement *)element withPredicateString:(NSString *)predicateString { + XCUIElementQuery *query = [[element descendantsMatchingType:XCUIElementTypeAny] matchingPredicate:[NSPredicate predicateWithFormat:predicateString]]; + NSArray *childElements = [query allElementsBoundByIndex]; + return childElements; +} + #pragma mark - Search by xpath