Python 페이지 로드 대기 방법 요약

1. 명시적 대기


이것은 찾을 노드를 지정하고 가장 긴 대기 시간을 지정합니다. 만약 정해진 시간 안에 이 노드가 불러오면 찾은 노드로 돌아갑니다.만약 규정된 시간 내에 이 노드를 불러오지 않으면 시간 초과 이상을 던진다.

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
broswer = webdriver.Chrome()
broswer.get('https://www.jd.com/')
wait = WebDriverWait(broswer, 20)
input_q = wait.until(EC.presence_of_element_located((By.ID, 'key')))
button = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, '.button')))
print(input_q, button)

2. 암시적 대기


스텔스 대기를 사용하여 테스트를 실행할 때 Selenium이 DOM에서 노드를 찾지 못하면 계속 기다립니다. 설정 시간을 초과하면 노드를 찾을 수 없는 이상을 던집니다.즉, 노드를 찾고 노드가 나타나지 않을 때 암시적 대기는 DOM을 찾기 위해 일정 시간을 기다립니다. 기본 시간은 0입니다. 예는 다음과 같습니다.

from selenium import webdriver
browser = webdriver.Chrome()
browser.implicitly_wait(10)
browser.get('https://www.jd.com/')
input_q = browser.find_element_by_class_name('button')
print(input_q)
지식 포인트 확장:
Python에는 세 가지 대기 방식이 있습니다.
1. 강제 대기
정시 대기 라이브러리 가져오기
from time import sleep 또는 import time
time.sleep(10)#10s를 강제로 기다리는 것은 다음 코드를 실행하는 것을 나타낸다. 이런 대기 방식은 시간이 되면 다음 문장을 실행하지만 비교적 융통성이 없어서 기다리는 시간 안에 요소가 실제로 불러온다는 것을 보장할 수 없다.그리고 기다리는 요소가 불러오면 다음 문장을 실행할 때까지 기다려야 하며 시간을 낭비합니다.
2. 은밀한 대기
driver.implicitly_wait(30)#30s 대기
이 기다림은 정해진 시간 내에 페이지의 모든 요소를 불러오면 다음 단계를 실행합니다. 그렇지 않으면 시간이 끝날 때까지 기다린 후에 다음 단계를 계속합니다.
이 방법의 단점은 당신이 필요로 하는 요소는 이미 불러왔지만, 페이지가 아직 다 불러오지 않았기 때문에, 페이지가 다 불러오기를 계속 기다려야만 다음 작업을 수행할 수 있다는 것이다.
3. 현성 대기
가져올 가방

from selenium.webdriver.support.wait import WebDriverWait # 

from selenium.webdriver.support import expected_conditions as EC #  

from selenium.webdriver.common.by import By # 
파이썬 페이지에 불러오는 대기 방식에 대한 이 글은 여기까지 소개합니다. 파이썬 페이지에 불러오는 대기 방식에 대한 더 많은 내용은 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보십시오. 앞으로 많은 응원 부탁드립니다!

좋은 웹페이지 즐겨찾기