如何在 Chrome 中使用 Selenium 阻止页面加载?
我们可以使用 JavaScript 执行器在 Chrome 浏览器中使用 Selenium 网页驱动程序来停止页面加载。Selenium 可以借助 executeScript 命令执行 JavaScript 命令。
要停止页面加载,将命令 window.stop() 作为参数传递给 executeScript 方法。此外,对于 Chrome 浏览器,我们必须将 pageLoadStrategy 配置为 none 值并等待 Web 元素可用。
最后,我们必须调用 window.stop。
语法
driver.execute_script("window.stop();")
示例
使用 JavaScript 执行器的代码实现
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 #configure pageLoadStrategy to none c = DesiredCapabilities.CHROME c["pageLoadStrategy"] = "none" #set chromodriver.exe path driver = webdriver.Chrome(executable_path="C:\chromedriver.exe", desired_capabilities=c) #explicit wait w = WebDriverWait(driver, 15) #launch URL driver.get("https://www.google.com/") #expected condition w.until(EC.presence_of_element_located((By.CLASS_NAME, 'gLFyf'))) #JavaScript Executor to stop page load driver.execute_script("window.stop();")
我们还可以借助 set_page_load_timeout 方法并将其作为参数以秒为单位传递时间来停止页面加载。例如,如果时间为 0.1 秒,则如果页面加载耗时超过 0.1 秒,将引发 TimeoutException。
语法
driver.set_page_load_timeout(0.1)
示例
from selenium import webdriver #set chromodriver.exe path driver = webdriver.Chrome(executable_path="C:\chromedriver.exe") #set page load timeout driver.set_page_load_timeout(0.1) #launch URL driver.get("https://127.0.0.1/") #close browser driver.close()
输出
广告