2017-11-29 2 views
0

첫날부터.Appium NSPredicate 단일 항목 선택 Appium과 함께 NSPredicates를 사용하는 첫 번째 날

여기에 문제가 있습니다.

뷰 내에 3 개의 XCUIElementTypeTextField 요소가 있습니다.

나는이

처럼 사용하여 선택 XPath는 사용할 수 있습니다

"(// XCUIElementTypeTextField) [1]"

다음

2, 3하지만 XPath는 속도가 느린 내가 지금 사용하고 있습니다 더 복잡한 솔루션이 필요할 때 NsPredicates. 나는 다른 전략으로 검색 할 수 있다는 것을 알고 있지만 NSPredicate는 위의 xpath와 같은 셀렉터를 지원합니까? 나는 할 수 없습니다 :

"하위 쿼리 (*, $ 엘, $의 el.type를 == 'XCUIElementTypeTextField') [0]"

이 그러나 결과를 반환하지 않습니다

"유형 == 'XCUIElementTypeTextField'"

는 않습니다.

답변

1

자 NSPredicate는 기본적으로 논리적 조건을 정의하는 방법, XPath는는 XML을 검색하기위한 언어이다.

나는 당신이 이미 확인 확신하지만, 다른 사람들이 당신이 자 NSPredicate로 할 수있는 일에 대해 더 많은 지식을 얻을 어쩌면 확인 official source

아직 더 중요 Appium와 작품이 무엇인지 확인하려면 : 자 NSPredicate 기반 귀하의 경우에 대한 해결 방법으로 XCUIModeTest.javafind_by_ios_predicate_tests.py

에 나와 로케이터는 당신은 t 당신의 술어를 사용하여 요소의 목록을 얻을 반복 할 수 그것을 나중에 인덱스로 필요한 것을 얻으십시오.

+0

소스 코드 링크를 제공해 주셔서 감사합니다. NSPredicate에서 배열을 구성하고 Xpath에있는 방식대로 인덱스를 기반으로 단일 요소를 선택할 수 있다고 생각하십니까? SUBQUERY는 배열을 반환해야하고 카운트를 얻을 수도 있지만 인덱스로 항목을 가져올 수 있습니까? – liminal18

+0

처럼 사용할 수 있습니다 : @iOSXCUITFindBy (iOSClassChain = "XCUIElementTypeWindow/*/XCUIElementTypeTextField [2]") – liminal18

관련 문제