You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Selenium结合Python操控Chrome如何重新加载已禁用的图片?

Selenium禁用图片加载后单独加载指定图片的实现方法

你之前通过ChromeOptions的prefs配置全局禁用了图片加载,要在不刷新整个页面的前提下加载指定图片,可通过以下两种方案实现:

方案1:仅加载单张指定图片(推荐)

不需要修改全局配置,只针对目标图片元素执行JS强制加载即可,不会触发页面其他图片的加载请求:

from selenium.webdriver.common.by import By

# 1. 定位到你需要加载的目标图片元素
target_img = driver.find_element(By.CSS_SELECTOR, "替换为目标图片的CSS选择器")

# 2. 执行JS强制加载该图片
driver.execute_script("""
const imgUrl = arguments[0].src || arguments[0].dataset.src;
const loadImg = new Image();
loadImg.src = imgUrl;
loadImg.onload = () => {
    arguments[0].src = imgUrl;
}
""", target_img)

注:如果是懒加载图片,代码中会自动取dataset.src属性的地址,适配绝大多数懒加载场景。

方案2:临时允许所有图片加载,加载完成后恢复禁用

适合需要同时加载多张图片的场景,通过Chrome DevTools Protocol(CDP)命令实时修改全局配置,无需重启浏览器:

# 1. 临时允许所有图片加载
driver.execute_cdp_cmd("ContentSettings.setRule", {
    "primaryPattern": "<all_urls>",
    "resourceType": "image",
    "setting": "allow"
})

# 2. 执行JS重新加载页面所有图片
driver.execute_script("""
document.querySelectorAll('img').forEach(img => {
    const realSrc = img.src || img.dataset.src;
    if (realSrc) img.src = realSrc;
})
""")

# 3. 恢复全局禁用图片的配置,避免后续页面加载多余图片
driver.execute_cdp_cmd("ContentSettings.setRule", {
    "primaryPattern": "<all_urls>",
    "resourceType": "image",
    "setting": "block"
})

内容的提问来源于stack exchange,提问作者mrPark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 15:57:01