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 #
파이썬 페이지에 불러오는 대기 방식에 대한 이 글은 여기까지 소개합니다. 파이썬 페이지에 불러오는 대기 방식에 대한 더 많은 내용은 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보십시오. 앞으로 많은 응원 부탁드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.