如何在 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://#/")
#close browser
driver.close()

輸出

更新於: 06-04-2021

9K+ 瀏覽量

開啟你的 職業

完成課程即可獲得認證

開始學習
廣告
© . All rights reserved.