본문 바로가기
IT/Scraping

selenium과 appium이 사용하는 WebDriver 프로토콜

by Cyber_ 2025. 3. 18.

Selenium과 Appium의 관계

Selenium과 Appium은 둘 다 WebDriver 기반의 자동화 도구지만, 서로 다른 목적을 가지고 있습니다.

  1. Selenium
  • 웹 자동화 프레임워크
  • 웹 크라우저(Chrome, Firefox, Edge 등)를 자동화하는 도구
  • 웹 애플리케이션 UI 테스트, 크롤링 등에 사용
  • selenium-webdriver를 통해 웹 페이지에서 버튼 클릭, 텍스트 입력 등 수행
  1. Appium
  • 모바일(iOS/Android) 자동화 프레임워크
  • 모바일 네이티브 앱(React Native, Flutter 포함), 웹 앱 자동화
  • 내부적으로 WebDriver API를 사용해 모바일 기기과 상호작용
  • iOS의 경우 XCUITest, Android의 경우 UIAutomator2를 활용
  1. 둘의 관계
  • Appium은 Selenium의 WebDriver 프로토콜을 확장한 모바일 자동화 프레임워크
  • Selenium은 웹 자동화 전용이고, Appium은 모바일(iOS/Android) 자동화에 특화
  • 둘 다 WebDriver API를 사용하지만, 서로 독립적으로 실행됨

WebDriver 프로토콜이란?

웹 및 모바일 UI 자동화를 위해 클라이언트(WebDriver API)와 브라우저/디바이스 간의 통신을 정의하는 W3C 표준 프로토콜입니다. 즉, 테스트 코드와 실제 브라우저/모바일 기기 간의 중간 인터페이스 역할을 하는 프로토콜입니다.

WebDriver 프로토콜 핵심 개념

  1. 클라이언트-서버 아키텍처
    클라이언트(WebDriver API)는 테스트 스크립트에서 실행되고, 서버(WebDriver Server)는 브라우저나 모바일 디바이스에서 실행 됩니다.
  2. HTTP REST API 기반
    WebDriver 프로토콜은 JSON Wire Protocol을 기반으로 동작하며, HTTP 요청을 통해 명령을 전달합니다.
  3. W3C 표준화
    WebDriver 프로토콜은 원리 Selenium이 JSON Wire Protocol을 기반으로 정의한 것이지만 현재는 W3C 표준입니다.\

WebDriver 프로토콜의 동작 원리

  1. WebDriver 세션 생성
    1) 클라이언트(WebDriver API) -> 서버(WebDriver Server)로 POST /session 요청
    2) 서버가 새로운 WebDriver 세션을 만들고 sessionId를 응답으로 반환
  2. 브라우저 또는 모바일 앱 제어
    클라이언트가 특정 요소를 찾고 조작하기 위해 WebDriver 서버에 요청
  3. WebDriver 세션 종료
    테스트가 끝난 후 WebDriver 세션을 종료하려면 DELETE /session/{id} 요청을 보냄