본문으로 건너뛰기
실습하기

자주 사용하는 Selenium 메서드

이번 수업에서는 Selenium에서 자주 사용되는 추가 메서드들을 소개합니다.


implicitly_wait 메서드로 페이지 로드 대기하기

웹 페이지마다 로딩 속도가 다르기 때문에, 특정 요소가 나타날 때까지 기다려야 하는 상황이 자주 발생합니다.

implicitly_wait 메서드는 최대 대기 시간을 설정하여 페이지 로드를 대기합니다.

페이지 로딩 대기 예시
from selenium import webdriver

# Chrome 웹 드라이버 생성
driver = webdriver.Chrome()

# 페이지 로드에 최대 10초까지 대기
driver.implicitly_wait(10)

# 특정 URL로 이동
driver.get("https://www.example.com")

implicitly_wait 메서드를 사용하면 불필요한 시간 낭비 없이 페이지가 완전히 로드될 때까지 대기할 수 있습니다.


WebDriverWait 클래스로 특정 조건이 충족될 때까지 대기하기

WebDriverWait 클래스를 사용하면 특정 조건(예: 특정 HTML 요소가 존재하는지, 클릭 가능한지)이 충족될 때까지 대기할 수 있습니다.

예를 들어 expected_conditions 모듈의 presence_of_element_located 메서드와 함께 사용하면 특정 요소가 나타날 때까지 대기할 수 있습니다.

아래 코드는 특정 요소가 나타날 때까지 최대 10초까지 대기하는 예시입니다.

presence_of_element_located 메서드 예시
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# myDynamicElement가 나타날 때까지 최대 10초까지 대기
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "myDynamicElement"))
)

자주 사용하는 expected_conditions 메서드

  • presence_of_element_located : 요소가 나타날 때까지 대기

  • element_to_be_clickable : 요소가 클릭 가능할 때까지 대기

  • text_to_be_present_in_element : 요소에 특정 텍스트가 포함될 때까지 대기


Select 클래스로 드롭다운 메뉴 선택하기

웹 페이지의 드롭다운 메뉴에서 특정 항목을 선택해야 할 때는 Select 클래스를 사용합니다.

아래 코드는 드롭다운 메뉴에서 "Option 1"을 선택하는 예시입니다.

드롭다운 메뉴 선택 예시
from selenium.webdriver.support.ui import Select

# 드롭다운 메뉴 요소 찾기
select_element = driver.find_element("id", "dropdownMenu")

# Select 객체 생성
select = Select(select_element)

# Option 1 선택
select.select_by_visible_text("Option 1")

save_screenshot 메서드로 스크린샷 저장하기

자동화 작업 중에 특정 시점의 웹 페이지 상태를 기록하거나 문제를 디버깅할 때, save_screenshot 메서드를 사용해 스크린샷을 저장할 수 있습니다.

참고: 현재 save_screenshot 메서드는 실습 환경에서는 지원되지 않습니다. 컴퓨터에 파이썬과 selenium 라이브러리를 설치하고 실행하면 작동하는 것을 확인할 수 있습니다.

스크린샷 저장 예시
from selenium import webdriver

# Chrome 웹 드라이버 생성
driver = webdriver.Chrome()

# 특정 웹 페이지 열기
driver.get('https://www.example.com')

# 스크린샷 파일 저장 (실습 환경에서는 지원되지 않습니다)
driver.save_screenshot("screenshot.png")

# 브라우저 종료
driver.quit()

save_screenshot 메서드는 현재 브라우저 화면을 이미지 파일로 저장합니다.

다음 내용이 궁금하다면?

코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!