최근에는 하이브리드앱이 아닌 것을 찾기 어려운 만큼 하이브리드 앱이 많이 나오고 있습니다.
그래서 자동화를 진행하다가 웹뷰와 만나게 되는데요
이 때 웹뷰 컨트롤을 위해 어떤 것을 해야 하는지 알아보도록 하겠습니다.
이 포스팅은 팀 분들의 도움을 받아 작성할 수 있었습니다!
1. context를 먼저 변경해줍니다.
context는 기본적으로
NATIVE_APP
으로 되어있을 겁니다. 이것을 webview로 변경해주셔야 하는데요 NATIVE_APP은 아마 모든 앱이 동일 하겠지만
webview의 context 명은 앱마다 다를 수 있습니다.
print(wd.contexts)
로 모든 context를 불러와보시고 해당 앱에 맞는 webview 이름을 체크해두세요.
webview 명은 아마
WEBVIEW_
로 시작할겁니다.
webview 명이 예를 들어 WEBVIEW_com.goddessbest 라고 한다면 이제 이 webview로 스위칭을 해줍니다.
webdriver.switch_to.context("WEBVIEW_com.goddessbest")
또는
webdriver.switch_to.context(wd.contexts[-1])
contexts가 배열을 반환하기 때문에 webview가 있는 배열을 선택하시면 됩니다.
거의 마지막에 있는 것이 webview 이므로 아래 예 처럼 하셔도 됩니다.
2. window를 변경해줍니다.
일반적인 webview라면 context만 변경해도 바로 사용하실 수 있습니다.
다만 webview위에 또 webview가 있는 경우에는
context만 변경해서는 내가 원하는 webview를 컨트롤 하실 수 없습니다.
이럴경우 window를 내가 원하는 webview로 바꿔줘야 합니다.
일단 현재 window가 뭔지 파악해 둡니다.
print(webdriver.current_window_handle)
그리고 전체 window를 확인합니다.
print(webdriver.window_handles)
내가 변경해야 할 window를 확인했다면 스위칭 해줍니다.
webdriver.switch_to.window(변경할 window)
이제 내가 원하는 webview의 window를 컨트롤 하실 수 있게됩니다!
webview는 CLASS_NAME으로 element를 찾으셔서 컨트롤 하시는 것을 추천 드립니다.
!중요
- webview 테스트가 완료되셨을 경우 다시 NATIVE_APP으로 context를 복구 하셔야 합니다.
- window를 변경하신뒤에 해당 window가 닫히거나 화면이 바뀌면 다시 원래 window로 돌아오셔야 합니다.
- context와 window를 변경하시는 것이 중요하니 잊지말고 복구해주세요
'Automation' 카테고리의 다른 글
Katalon, AWS에서 종단 간 테스트 자동화 솔루션 제공 (Katalon Delivers an End-to-End Test Automation Solution on AWS) (0) | 2022.12.11 |
---|---|
QA도 해보자! 디바이스 팜 도입기!! STF 셋팅하기 (12) | 2022.09.04 |
Appium TroubleShoting - 2!! Unclosed Socket, Already use in port (0) | 2022.03.15 |
Announcing Selenium 4!! Selenium 4가 정식 릴리즈 되었습니다. (0) | 2021.10.21 |
테스트 자동화 정말 중요하게 생각하고 있나요? (10) | 2021.09.30 |
댓글