如何在 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()

输出

更新于: 06-04-2021

9K+ 浏览量

开启你的 职业

完成课程即可获得认证

开始学习
广告