Selenium과 Appium의 관계
Selenium과 Appium은 둘 다 WebDriver 기반의 자동화 도구지만, 서로 다른 목적을 가지고 있습니다.
- Selenium
- 웹 자동화 프레임워크
- 웹 크라우저(Chrome, Firefox, Edge 등)를 자동화하는 도구
- 웹 애플리케이션 UI 테스트, 크롤링 등에 사용
- selenium-webdriver를 통해 웹 페이지에서 버튼 클릭, 텍스트 입력 등 수행
- Appium
- 모바일(iOS/Android) 자동화 프레임워크
- 모바일 네이티브 앱(React Native, Flutter 포함), 웹 앱 자동화
- 내부적으로 WebDriver API를 사용해 모바일 기기과 상호작용
- iOS의 경우 XCUITest, Android의 경우 UIAutomator2를 활용
- 둘의 관계
- Appium은 Selenium의 WebDriver 프로토콜을 확장한 모바일 자동화 프레임워크
- Selenium은 웹 자동화 전용이고, Appium은 모바일(iOS/Android) 자동화에 특화
- 둘 다 WebDriver API를 사용하지만, 서로 독립적으로 실행됨
WebDriver 프로토콜이란?
웹 및 모바일 UI 자동화를 위해 클라이언트(WebDriver API)와 브라우저/디바이스 간의 통신을 정의하는 W3C 표준 프로토콜입니다. 즉, 테스트 코드와 실제 브라우저/모바일 기기 간의 중간 인터페이스 역할을 하는 프로토콜입니다.
WebDriver 프로토콜 핵심 개념
- 클라이언트-서버 아키텍처
클라이언트(WebDriver API)는 테스트 스크립트에서 실행되고, 서버(WebDriver Server)는 브라우저나 모바일 디바이스에서 실행 됩니다. - HTTP REST API 기반
WebDriver 프로토콜은 JSON Wire Protocol을 기반으로 동작하며, HTTP 요청을 통해 명령을 전달합니다. - W3C 표준화
WebDriver 프로토콜은 원리 Selenium이 JSON Wire Protocol을 기반으로 정의한 것이지만 현재는 W3C 표준입니다.\
WebDriver 프로토콜의 동작 원리
- WebDriver 세션 생성
1) 클라이언트(WebDriver API) -> 서버(WebDriver Server)로 POST /session 요청
2) 서버가 새로운 WebDriver 세션을 만들고 sessionId를 응답으로 반환 - 브라우저 또는 모바일 앱 제어
클라이언트가 특정 요소를 찾고 조작하기 위해 WebDriver 서버에 요청 - WebDriver 세션 종료
테스트가 끝난 후 WebDriver 세션을 종료하려면 DELETE /session/{id} 요청을 보냄
'IT > Scraping' 카테고리의 다른 글
자연어 처리하기: NLTK (0) | 2025.03.07 |
---|---|
자연어 처리하기: 너비우선탐색 (0) | 2025.03.07 |
자연어 처리하기: 데이터 요약 (0) | 2025.02.20 |
지저분한 데이터 정리하기: 사후 정리(오픈리파인, OpenRefine) (0) | 2025.02.20 |
지저분한 데이터 정리하기: 코드에서 정리 (0) | 2025.02.20 |