Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python Selenium WebDriver에서 프록시 설정하고 사용하는 방법

Python 환경에서 Selenium WebDriver를 프록시(Proxy)와 함께 실행하면 지역화(Localization) 테스트 등 다양한 시나리오를 효과적으로 검증할 수 있습니다. 프록시는 특정 지역에서 웹사이트가 어떻게 표시되는지 확인해야 하는 테스트 환경에서 필수적인 구성 요소입니다.

예를 들어 이커머스 애플리케이션을 테스트할 때, 프록시를 통해 접속 지역에 따라 노출되는 언어와 통화가 사용자 위치에 맞게 올바르게 표시되는지 확인할 수 있습니다. 또한 웹사이트 UI가 사용자의 실제 위치와 일치하는지 검증하는 데에도 활용됩니다.

Selenium에서 프록시 설정 단계

  1. Selenium 패키지에서 webdriver 모듈을 임포트합니다.
  2. 프록시 서버 주소를 정의합니다.
  3. ChromeOptions 클래스의 객체를 생성합니다.
  4. 프록시 정보를 ChromeOptions에 전달합니다.
  5. 옵션이 적용된 객체를 Chrome() 드라이버에 추가합니다.

프록시 설정 코드 예제

다음은 실제 구현 코드입니다.

from selenium import webdriver

# 프록시 서버 정의
proxy = "128.21.0.0:8080"

# ChromeOptions 클래스 구성
chrome_options = webdriver.ChromeOptions()

# 옵션에 프록시 파라미터 추가
chrome_options.add_argument('--proxy-server=%s' % proxy)

# 옵션을 Chrome() 드라이버에 적용
driver = webdriver.Chrome(options=chrome_options)
driver.implicitly_wait(0.6)
driver.get("https://www.tutorialspoint.com/index.htm")

접속 지역 검증하기

페이지 내 위치 정보 요소에 현재 사용자의 지역이 올바르게 표시되는지 확인하려면 아래와 같은 코드를 추가하면 됩니다.

def check_location(self):
    self.driver.get(self.url)
    location = self.driver.find_element(By.XPATH, "//span[@id='loc']")
    # assertion으로 위치 검증
    self.assertEqual('India', location.text)

여러 지역 테스트하기

두 개 이상의 지역을 검증해야 한다면, 별도의 메서드를 만들고 프록시 주소를 인자로 전달하는 방식으로 확장할 수 있습니다. 이렇게 하면 하나의 테스트 메서드로 여러 국가별 시나리오를 반복적으로 검증할 수 있어 테스트 효율이 크게 향상됩니다.

마무리

Selenium WebDriver에 프록시를 설정하는 과정은 ChromeOptions에 --proxy-server 인자를 추가하는 것만으로 간단히 구현할 수 있습니다. 지역화 테스트, 지역 기반 콘텐츠 확인, 광고 검증 등 다양한 용도로 활용해 보시기 바랍니다.