find element using UIAutomaterViewer and locator

Dahun Yoo·2022년 5월 5일
0

Appium with python

목록 보기
5/13
post-thumbnail

안드로이드폰에서 element의 path 정보를 확인할 때 UIAutomatorViewer를 사용해봅니다.


UIAutomatorViewer

이 녀석은 안드로이드 스튜디오를 설치하면 기본적으로 설치되는 프로그램인데, 어플리케이션의 UI Path트리를 확인할 때 사용할 수 있습니다.

생긴 것은 이렇게 생겼고,

/Users/{user_name}/Library/Android/sdk/tools/bin
이 경로로 이동하시면 UIAutomatorViewer가 있는데, 이것을 실행하시면 됩니다.

단, 맥북에서 실행시키면 프리징되는 이슈가 있는데 아래 깃헙의 코멘트로 해결했습니다.

https://github.com/android/android-test/issues/911#issuecomment-849389068

지정된 버전을 이름을 바꾸어서 특정 경로에 넣어준 다음에,
실행을 시킬 때 한 번 창을 리사이즈 (마우스로 크기조절) 해주는 게 핵심입니다.


Locator

element를 식별할 때 주로 쓰이는 Locator는 아래와 같습니다.

AccessibilityID

UI요소의 고유식별자 입니다.

  • Android: content-desc
  • iOS: accessibility-id

id

element를 찾을 수 있는 방법에는 여러가지가 있으나, 아래 값을 이용하는 방법입니다.

  • Android : resource-id
  • iOS: name

UIAutomatorViewer에서 버튼이나 라벨을 하나 클릭했을 때, resource-id가 지정되어 있다면, 이 값을 이용할 수 있습니다.

driver.find_element(by=By.ID, value="com.samsung.android.app.contacts:id/menu_create_contact").click()

xpath

xpath의 값인데, xpath는 className과 조합하여 만들 수 있습니다.

driver.find_element(by=By.XPATH, value="//android.widget.EditText[@text='전화번호']")

여기서 android.widget.EditText 까지가 className이고, text값이 있을 대 해당 값을 입력해준 형태입니다.

appium의 공식 문서에 따르면 퍼포먼스 이슈가 있습니다.

ref.
https://appium.io/docs/en/commands/element/find-elements/index.html#selector-strategies

profile
QA Engineer

0개의 댓글