Selenium python: как остановить загрузку страницы при загрузке определенного элемента?
неявные и явные ожидания могут использоваться, когда страница использует AJAX, но я хочу остановить загрузку, вызванную драйвером.get () при загрузке достаточного количества элементов. Возможно ли это сделать, потому что водитель.вызов get () возвращается только после завершения загрузки страницы.
1 ответов
Да, это возможно, установив pageLoadStrategy
возможность none
. Затем дождитесь присутствия элемента и вызовите window.stop
остановить загрузку:
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
capa = DesiredCapabilities.CHROME
capa["pageLoadStrategy"] = "none"
driver = webdriver.Chrome(desired_capabilities=capa)
wait = WebDriverWait(driver, 20)
driver.get('http://stackoverflow.com/')
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '#h-top-questions')))
driver.execute_script("window.stop();")