Appium를 통한 webview 조작에서는 id locator를 사용할 수 없다.

Dahun Yoo·2023년 11월 14일
0

Appium with python

목록 보기
10/13

Appium를 통한 webview 조작에서는 id locator를 사용할 수 없다.

업무중에 appium을 이용해서 웹뷰를 조작할 일이 있었다.
이미 pc web에서 selenium으로 조작하던 로직이 있었는데, element의 식별을 위해 로케이터를 id를 사용하고 있었다.

INPUT = (By.ID, "~~~~")

그래서 이것을 바로 모바일웹에서도 사용하려고 했더니 invalid locator 에러가 발생했다.

구글링을 조금 검색해보니, appium이 w3c standard를 채용하기 시작한 이후부터, webview에서는 css, xpath 밖에 조작할 수가 없다고 한다.

https://github.com/appium/appium/issues/13306

id로케이터를 사용하고 싶으면 w3c 모드를 false로 하고 사용하던지, css셀렉터로 바꿔서 사용해야할 것 같다.

실제로 w3c 재단의 webdriver 문서에도 지원하는 로케이터는 총 6개로 기재되어있는데, 여기서 id값은 별도로 적혀져있지 않다.
(selenium에서 By.ID를 사용하는 경우, 자동으로 css selector로 변환해주는 듯 하다.)

https://www.w3.org/TR/webdriver/#locator-strategies

프로덕트에 id값이 잘 안심어져있어서..그간 xpath로만 식별하고 있었는데 이제서야 겨우 알게되었다 ㅜㅜ

끝!

ref

profile
QA Engineer

0개의 댓글