업무중에 appium을 이용해서 웹뷰를 조작할 일이 있었다.
이미 pc web에서 selenium으로 조작하던 로직이 있었는데, element의 식별을 위해 로케이터를 id를 사용하고 있었다.
INPUT = (By.ID, "~~~~")
그래서 이것을 바로 모바일웹에서도 사용하려고 했더니 invalid locator
에러가 발생했다.
구글링을 조금 검색해보니, appium이 w3c standard를 채용하기 시작한 이후부터, webview에서는 css
, xpath
밖에 조작할 수가 없다고 한다.
id로케이터를 사용하고 싶으면 w3c
모드를 false로 하고 사용하던지, css셀렉터로 바꿔서 사용해야할 것 같다.
실제로 w3c 재단의 webdriver 문서에도 지원하는 로케이터는 총 6개로 기재되어있는데, 여기서 id값은 별도로 적혀져있지 않다.
(selenium에서 By.ID
를 사용하는 경우, 자동으로 css selector로 변환해주는 듯 하다.)
프로덕트에 id값이 잘 안심어져있어서..그간 xpath로만 식별하고 있었는데 이제서야 겨우 알게되었다 ㅜㅜ
끝!
ref