셀레니움에서 페이지가 로딩이 될 때까지 기다리는 방법

2024. 1. 28. 10:26·파이썬/크롤링
반응형

셀레니움은 웹 브라우저를 제어하여 자동화된 테스트를 수행하는 데 사용되는 라이브러리입니다. 셀레니움을 사용하여 웹 페이지를 탐색하려면 먼저 해당 페이지가 완전히 로딩되어야 합니다.

셀레니움에서 페이지가 로딩이 될 때까지 기다리는 방법에는 여러 가지가 있습니다.

1. time.sleep() 함수 사용

가장 간단한 방법은 time.sleep() 함수를 사용하는 것입니다. 이 함수는 지정된 시간 동안 코드의 실행을 일시 중지합니다.

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://google.com")

# 10초 동안 기다립니다.
time.sleep(10)

# 페이지의 제목을 출력합니다.
print(driver.title)

이 코드는 Google 웹 페이지를 열고 10초 동안 기다립니다. 그런 다음 페이지의 제목을 출력합니다.

 

2. implicitly_wait() 메서드 사용

implicitly_wait() 메서드는 셀레니움이 요소를 찾을 때까지 기다리는 기본 시간을 설정합니다. 이 메서드는 페이지가 완전히 로딩되기 전에 요소를 찾는 경우를 방지하는 데 도움이 됩니다.

from selenium import webdriver

driver = webdriver.Chrome()
driver.implicitly_wait(10)

driver.get("https://google.com")

# 페이지의 제목을 출력합니다.
print(driver.title)

이 코드는 Google 웹 페이지를 열고 implicitly_wait() 메서드를 사용하여 10초의 기본 시간을 설정합니다. 그런 다음 페이지의 제목을 출력합니다.

 

3. WebDriverWait 클래스 사용

WebDriverWait 클래스는 특정 조건이 충족될 때까지 기다리는 데 사용할 수 있습니다. 이 클래스는 다음과 같은 두 가지 메서드를 제공합니다.

  • until() 메서드는 지정된 조건이 충족될 때까지 기다립니다.
  • until_not() 메서드는 지정된 조건이 충족되지 않을 때까지 기다립니다.
from selenium import webdriver

from selenium.webdriver.support.ui import WebDriverWait

driver = webdriver.Chrome()

driver.get("https://google.com")

# 페이지의 제목이 "Google"이 될 때까지 기다립니다.
WebDriverWait(driver, 10).until(lambda x: x.title == "Google")

# 페이지의 제목이 "Google"이 아닐 때까지 기다립니다.
WebDriverWait(driver, 10).until_not(lambda x: x.title == "Google")

이 코드는 Google 웹 페이지를 열고 WebDriverWait 클래스의 until() 메서드를 사용하여 페이지의 제목이 "Google"이 될 때까지 기다립니다.

 

4. 자바스크립트 코드 사용

셀레니움은 자바스크립트를 사용하여 웹 페이지를 탐색하고 조작할 수 있습니다. 페이지가 로딩이 되었는지 확인하려면 다음과 같은 자바스크립트 코드를 사용할 수 있습니다.

script = """return document.readyState === 'complete';"""

# 로딩이 완료될 때까지 기다립니다.
while not driver.execute_script(script):
    pass

이 코드는 페이지의 상태가 "complete"일 때 까지 while문을 반복합니다.

 

셀레니움을 사용하여 페이지가 로딩이 될 때까지 기다리는 방법을 선택할 때에는 다음과 같은 요소를 고려해야 합니다.

  • 페이지의 복잡성
  • 페이지에 포함된 동적 요소의 수
  • 테스트의 성능

페이지가 복잡하고 동적 요소가 많이 포함되어 있다면 implicitly_wait() 메서드나 WebDriverWait 클래스를 사용하여 페이지가 완전히 로딩될 때까지 기다리는 것이 좋습니다. 테스트의 성능을 고려하여 적절한 기다림 시간을 설정해야 합니다.

저작자표시 비영리 변경금지 (새창열림)

'파이썬 > 크롤링' 카테고리의 다른 글

셀레니움 최적화를 위한 chrome_options  (0) 2024.01.30
셀레니움에서 이미지 비활성화 : 최적화  (0) 2024.01.29
셀레니움의 키보드 : selenium.webdriver.common.keys  (1) 2024.01.24
웹 자동화의 핵심 : 셀레니움의 WebElement 란?  (0) 2024.01.23
셀레니움 요소 찾기 : find_element와 find_elements  (0) 2024.01.19
'파이썬/크롤링' 카테고리의 다른 글
  • 셀레니움 최적화를 위한 chrome_options
  • 셀레니움에서 이미지 비활성화 : 최적화
  • 셀레니움의 키보드 : selenium.webdriver.common.keys
  • 웹 자동화의 핵심 : 셀레니움의 WebElement 란?
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (725) N
      • 상품 추천 (223) N
      • MongoDB (4)
      • 하드웨어 (17) N
      • 일기장 (4)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • 파이썬 (13)
        • Basic (41)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (41)
        • CSS (10)
      • Git (11)
      • SQL (5)
      • Flutter (10)
        • Tip (1)
      • System (1)
      • BaekJoon (6)
      • Portfolio (2)
      • MacOS (1)
      • 유틸리티 (1)
      • 서비스 (6)
      • 자동화 (3)
      • Hobby (10)
        • 물생활 (10)
        • 식집사 (0)
  • 인기 글

  • 태그

    긴유통기한우유
    스크립트 실행 순서
    C#
    cv2
    learntocode
    Python
    unity
    programming101
    리뷰관리
    list
    codingtips
    programmerlife
    셀레니움
    유니티
    devlife
    쇼핑몰리뷰
    appdevelopment
    파이썬
    라떼우유
    믈레코비타멸균우유
    스마트스토어리뷰
    리뷰이관
    codingcommunity
    ipcamera
    상품 리뷰 크롤링
    카페24리뷰이관
    카페24리뷰
    스크립트 실행
    rtsp
    리스트
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코샵
셀레니움에서 페이지가 로딩이 될 때까지 기다리는 방법
상단으로

티스토리툴바