[파이썬] Selenium 웹 페이지의 인터랙티브 요소 다루기

Selenium은 웹 페이지를 자동화하고 테스트하기 위한 강력한 도구입니다. 웹 페이지가 인터랙티브한 요소들을 포함하고 있다면, Selenium을 사용하여 이러한 요소들을 손쉽게 제어할 수 있습니다. 이 블로그 게시물에서는 Python에서 Selenium을 사용하여 웹 페이지의 인터랙티브 요소를 다루는 방법에 대해 알아보겠습니다.

1. 웹 요소 찾기

Selenium을 사용하여 웹 요소를 다루기 위해서는 먼저 해당 요소를 찾아야 합니다. 일반적으로 사용되는 웹 요소 태그는 다음과 같습니다:

Selenium은 다양한 방법으로 웹 요소를 찾을 수 있습니다. 가장 일반적인 방법은 XPath, CSS Selector 또는 ID를 사용하는 것입니다. 다음은 각 방법의 예시입니다:

# XPath를 사용하여 웹 요소 찾기
element = driver.find_element_by_xpath("//div[@id='my-element']")

# CSS Selector를 사용하여 웹 요소 찾기
element = driver.find_element_by_css_selector("input[name='username']")

# ID를 사용하여 웹 요소 찾기
element = driver.find_element_by_id("my-element")

2. 웹 요소 상호작용

Selenium으로 웹 요소를 찾은 후에는 해당 요소와 상호작용할 수 있습니다. 몇 가지 주요한 상호작용 예시를 살펴보겠습니다:

2.1. 웹 요소 값 입력

# Input 요소에 값을 입력하기
input_element = driver.find_element_by_xpath("//input[@name='username']")
input_element.send_keys("my_username")

2.2. 클릭 이벤트 처리

# Button 클릭하기
button_element = driver.find_element_by_xpath("//button[@id='my-button']")
button_element.click()

2.3. 선택 옵션 변경

# Select 요소에서 옵션 변경하기
select_element = driver.find_element_by_xpath("//select[@name='country']")
select_element.select_by_value("us")

3. 요소 기다리기

웹 페이지의 인터랙티브 요소들은 로딩 시간이 필요할 수 있습니다. Selenium은 웹 요소가 나타날 때까지 기다리는 기능을 제공합니다. 다음은 몇 가지 기다리기 예시입니다:

3.1. 요소가 나타날 때까지 기다리기

from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait

# 요소가 나타날 때까지 기다리기
element = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.XPATH, "//div[@id='my-element']"))
)

3.2. 페이지가 완전히 로드될 때까지 기다리기

# 페이지가 완전히 로드될 때까지 기다리기
WebDriverWait(driver, 10).until(EC.presence_of_all_elements_located((By.XPATH, "//body")))

Selenium을 사용하여 웹 페이지의 인터랙티브 요소를 다루는 방법에 대해 알아보았습니다. 이러한 기능을 사용하여 자동화된 테스트나 웹 크롤링을 수행할 수 있습니다. Selenium의 다양한 기능과 메서드를 사용하여 자신의 프로젝트에 적용해 보세요!

더 많은 Selenium 사용법을 알고 싶다면 공식 문서를 참조하세요.