Autify가 이미지 인식을 통해 올바른 요소를 안정적으로 선택할 수 없는 경우 XPath 또는 접근성 ID를 사용하면 도움이 될 수 있습니다. 이 섹션에서는 XPath 및 접근성 ID를 사용하여 요소를 선택하는 방법을 보여 드리겠습니다.
XPath
XPath를 로케이터로 선택한 경우 Autify에서 자동으로 XPath를 생성합니다.
자동 생성된 XPath에는 요소 유형과 표시 순서만 포함됩니다. 추가 정보를 제공하거나 XPath에서 불필요한 정보를 제거하여 안정성을 향상시킬 수 있습니다.
예시:
| 유형 | XPath의 예 | |
|---|---|---|
| /XCUIElementTypeApplication/XCUIElementTypeWindow[1]/XCUIElementTypeOther/XCUIElementTypeOther/<>XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeTable/XCUIElementTypeCell[2]/XCUIElementTypeOther[1]/XCUIElementTypeOther/XCUIElementTypeSecureTextField | ||
| 수동 조정 후 | //XCUIElementTypeCell[contains(@value, "Password")]//XCUIElementTypeSecureTextField | 요소를 찾는 데 중요한 정보만 포함하므로 안정성이 향상됩니다. 학습에는 약간의 시행착오가 필요합니다. |
다음은 일반적으로 사용되는 XPath의 예입니다:
속성 사용
빠른 요소 업데이트 페이지에서 대상 요소 또는 해당 상위-하위 요소에 고유한 속성이 있는 경우 이를 XPath에 포함하면 안정성을 향상시킬 수 있습니다. 다음은 value 속성을 사용하는 예시입니다.
| XPath | 선택할 요소 |
|---|---|
| //XCUIElementTypeButton[@value="OK"] | 값이 "OK"인 버튼 |
| //*[contains(@name, 'limited')] | 이름에 "limited"가 포함된 요소 |
| //*[starts-with(@name, "2024")] | 이름이 "2024"로 시작하는 엘리먼트 |
| //*[ends-with(@name, 'login')] | 이름이 "login"으로 끝나는 요소 |
| //*[@name="Return"] | 이름이 "Return"인 요소 |
| (//*[@name="Done" or "完了"]) | 이름이 "Done" 또는 "完了"인 요소 |
순서 지정하기
여러 요소가 XPath와 일치하는 경우 순서대로 요소를 선택할 수 있습니다.
| XPath | 선택할 요소 |
|---|---|
| //XCUIElementTypeButton[3] | 세 번째 버튼 |
| //XCUIElementTypeTextField[last()] | 마지막 텍스트 필드 |
복합 로케이터
선택하려는 요소에 고유한 특성이 없는 경우 다른 요소와의 상대적 관계를 기준으로 선택할 수 있습니다.
| XPath | 선택할 요소 |
|---|---|
| //*[@value="register"]//XCUIElementTypeButton | 값이 "register"인 요소 내 버튼 |
| //*[value="체크 아웃"] ~ XCUIElementTypeButton | 값이 "체크 아웃"인 요소에 인접한 버튼 |
| //[@name="List"]/[5] | 이름이 "List"인 요소 바로 아래 다섯 번째 요소 |
접근성 ID
다른 방법으로 Autify가 요소를 선택할 수 없는 경우 접근성 ID를 설정하는 것이 좋습니다.
대상 요소에 iOS의 경우 'name' 속성이 있거나 Android의 경우 'content-desc' 속성이 있는 경우 빠른 요소 업데이트 페이지에서 속성 값을 접근성 ID로 설정하여 대상 요소를 선택할 수 있습니다.
대상 요소에 접근성 ID가 없는 경우에는 애플리케이션 코드를 수정해야 합니다.
접근성 ID 설정하기
iOS 네이티브
접근성 식별자 속성을 대상 요소에 추가합니다.
안드로이드 네이티브
대상 요소에 contentDescription을 추가합니다.
플러터
(iOS) 대상 요소에 시맨틱 식별자 속성을 설정합니다.
(Android) 현재 사용할 수 없습니다. 요소에 대해 Semantics 식별자 속성을 설정하면 페이지 소스에서 "resource-id"라는 속성으로 표시되므로 XPath에서 사용할 수 있습니다.
ReactNative
(iOS) 대상 엘리먼트에 testID 속성을 설정합니다.
(Android) 현재 사용할 수 없습니다. 요소에 대해 testID 속성을 설정하면 페이지 소스에서 "resource-id"라는 속성으로 표시되므로 XPath에서 사용할 수 있습니다.


