Python Selenium 아키텍처
Source: Dev.to
High Level Selenium Architecture
Selenium은 웹 기반 및 모바일 기반 애플리케이션을 자동화하는 도구입니다.
웹 기반 애플리케이션의 경우 Selenium은 브라우저와 통신하기 위한 내장 드라이버를 포함합니다. 모바일 애플리케이션의 경우 Selenium은 Appium이라는 추가 소스가 필요합니다.
Components
-
Language Binding
자동화 코드를 작성하는 부분입니다. Selenium은 Java, Python, C# 등 다양한 언어를 지원합니다. 바인딩은 코드를 WebDriver 명령으로 변환하고 사용자 코드와 Selenium 사이의 인터페이스 역할을 합니다. -
Browser Drivers
코드와 브라우저를 연결하는 중간 계층입니다. 예시: ChromeDriver, EdgeDriver, SafariDriver, … -
Browsers
최종 실행이 이루어지는 곳입니다. 예시: Chrome, Edge, Safari, …

Internal Selenium Architecture

WebDriver Class
Selenium의 주요 진입점입니다.
from selenium import webdriver
driver = webdriver.Chrome()
브라우저 세션을 초기화하고 Remote WebDriver에 명령을 전송합니다.
Remote WebDriver
Selenium의 핵심 구성 요소입니다. WebDriver 클래스에서 받은 명령을 JSON으로 변환하고 적절한 브라우저 드라이버에 요청을 전달합니다.
Browser Engine
실제 렌더링을 담당하고, 명령을 해석하며 DOM과 상호 작용합니다.
Browser Drivers
Selenium과 브라우저 사이를 연결하여 브라우저 내에서 명령을 실행합니다.
Significance of Python Virtual Environment
Python 가상 환경은 개발자가 프로젝트 의존성을 독립적으로 관리할 수 있게 해줍니다. 이는 서로 다른 라이브러리 요구 사항을 가진 여러 프로젝트를 작업할 때 특히 유용합니다—예를 들어, 한 프로젝트에서는 Selenium 4를 사용하고 다른 프로젝트에서는 Selenium 3를 사용하는 경우와 같습니다.