본문 바로가기
Automation

Appium에서 React Native App elements ID 지정하기 / element 찾기 / find element

by Zeromk2 2020. 6. 22.
728x90

appium으로 React Native App에서 본격적인 Front End 자동화를 시작하셨다면 이제 element를 선택하는 부분을 굉장히 많이 사용하시게 됩니다.

element를 선택하는 방법 (혹은 지정)은 다양한 편인데요 appium 공식 페이지에서는 이렇게 정의하고 있습니다.

http://appium.io/docs/en/commands/element/find-elements/

 

Find Elements - Appium

From here you can search these documents. Enter your search terms below.

appium.io

 

ID가 최고야. 짜릿해 늘 새로워

저는  App에서는 주로 xpath / ID / Accessibility ID를 주로 사용했고 

Web에서는 xpath / Class name / ID 를 주로 사용했습니다.

appium find elements 관련된 글을 검색해보신분은 아시겠지만 모든 가이드가 'xpath' 를 사용하지 말라고 하고 있습니다.

그 이유는 xpath는 '상대경로' 라서 UI/UX가 변경될 경우 사용하지 못하게 될 경우가 흔하고 appium이 xpath로 element를 찾는데 시간이 오래 걸립니다. 

해서 유니크한 값을 가진 ID 혹은 Accessibility ID를 권장하죠. 속도도 빠르구요.

Web에서도 ID가 권장입니다. Class name도 xpath보다는 괜찮지만 유니크하게 이름이 쓰이지 않는 경우가 있어서 ID가 가장 좋기는 합니다.

그럼 이것들을 개발팀에게 요청을 해야하죠. 


나: 개발자님 여기 로그인 버튼에 ID좀 넣어주실래요?

개발자: 네?....


 

이러면 개발자분들도 혼란이 올 수 있으니 명확하게 요청을 하기 위해서 하단 사이트를 참고합니다.

https://itnext.io/test-automation-in-react-native-ac9ac2330ab9

 

Test Automation in React Native using Appium

In this article I will discuss how to do a simple UI test automation in React Native using Appium.

itnext.io


나: 개발자님 여기 로그인 버튼에, 안드로이드는 accessibilityLabel로, iOS는 testID로ID값 지정부탁드려요.

개발자: 네넵


 

사실 저 2개에 같은 값을 넣어주면 됩니다. 그럼 코드 재사용이 훨씬 쉬워지니까요

accessibilityLabel = "sign_pass"
testID = "sign_pass"

 

 

 

그리고 appium inspector를 켜보면 이렇게 보이는 것을 알 수 있습니다.

 

 

이제 ID를 팍팍 심어달라고 요청해서 자동화를 진행해봅시다.

 

댓글