[PYTHON] 느린 스크립트가있는 전체 페이지로드까지 Selenium을 대기시키지 않으려면 어떻게합니까?
PYTHON느린 스크립트가있는 전체 페이지로드까지 Selenium을 대기시키지 않으려면 어떻게합니까?
Selenium driver.get (url) 전체 페이지로드까지 기다립니다. 그러나 스크래핑 페이지는 죽은 JS 스크립트를로드하려고 시도합니다. 그래서 제 Python 스크립트는 그것을 기다리고 몇 분 동안 작동하지 않습니다. 이 문제는 사이트의 모든 페이지에있을 수 있습니다.
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.cortinadecor.com/productos/17/estores-enrollables-screen/estores-screen-corti-3000')
# It try load: https://www.cetelem.es/eCommerceCalculadora/resources/js/eCalculadoraCetelemCombo.js
driver.find_element_by_name('ANCHO').send_keys("100")
대기 시간을 제한하는 방법, 파일의 AJAX로드를 차단하는 방법 또는 다른 방법입니까?
또한 webdriver.Chrome ()에서 스크립트를 테스트하지만 PhantomJS () 또는 Firefox ()를 사용합니다. 따라서 어떤 방법이 브라우저 설정에서 변경 사항을 사용하면 범용 적이어야합니다.
해결법
-
==============================
1.Selenium이 기본적으로 페이지 / URL을로드 할 때 pageLoadStrategy가 normal로 설정된 기본 구성을 따릅니다. Selenium이 전체 페이지로드를 기다리지 않도록 pageLoadStrategy를 구성 할 수 있습니다. pageLoadStrategy는 다음과 같이 3 가지 값을 지원합니다.
Selenium이 기본적으로 페이지 / URL을로드 할 때 pageLoadStrategy가 normal로 설정된 기본 구성을 따릅니다. Selenium이 전체 페이지로드를 기다리지 않도록 pageLoadStrategy를 구성 할 수 있습니다. pageLoadStrategy는 다음과 같이 3 가지 값을 지원합니다.
다음은 pageLoadStrategy를 구성하는 코드 블록입니다.
-
==============================
2.
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 driver = webdriver.Firefox() driver.get("http://somedomain/url_that_delays_loading") try: element = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.ID, "myDynamicElement")) ) finally: driver.quit()
그래서 해결책은 기다릴 시간을 정하는 것이고, 그 요소가 그 고정 된 기간에 잡히지 않는다면, 예외를 잡아서 사건이나 아무것도 기록하지 않고 마침내 계속 진행할 수 있습니다. 코드 샘플은 여기에서 가져 왔습니다.
from https://stackoverflow.com/questions/44770796/how-to-make-selenium-not-wait-till-full-page-load-which-has-a-slow-script by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 내장 함수와 이름 충돌 (0) | 2018.10.08 |
---|---|
[PYTHON] 파이썬 3 : 라인을 읽을 때의 EOF (숭고한 텍스트 2는 화가났다) (0) | 2018.10.08 |
[PYTHON] 파이썬에서 함수를 "호출"한다는 것은 무엇을 의미합니까? [닫은] (0) | 2018.10.08 |
[PYTHON] 이상한 행동 : 목록 이해력의 람다 (0) | 2018.10.08 |
[PYTHON] 보다 큼 연산자 또는보다 작은 연산자를 사용하여 두 목록 비교 (0) | 2018.10.08 |