以下两个python代码阻止在selenium non-headless chrome上下载图像,即在保存的截图中图像不可见。如果我们取消这两行注释,代码就不会像预期的那样工作了,也就是说,在无头chrome浏览器保存的屏幕截图中可以看到图像。如何正确地阻止图像加载在无头铬硒为python?
第一个方法
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
chrome_options = webdriver.ChromeOptions()
chrome_options.add_experimental_option("prefs", {"profile.default_content_settings.images": 2})
chrome_options.add_experimental_option("prefs", {"profile.managed_default_content_settings.images": 2})
# chrome_options.add_argument("--headless")
driver = webdriver.Chrome(options = chrome_options, executable_path = ChromeDriverManager().install())
driver.get('https://www.hdblog.it/page/1/')
driver.save_screenshot('screenshot.png')
第二种方法
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
option = webdriver.ChromeOptions()
chrome_prefs = {}
option.experimental_options["prefs"] = chrome_prefs
chrome_prefs["profile.default_content_settings"] = {"images": 2}
chrome_prefs["profile.managed_default_content_settings"] = {"images": 2}
# option.headless = True
driver = webdriver.Chrome(options=option, executable_path = ChromeDriverManager().install())
driver.get('https://www.hdblog.it/page/1/')
driver.save_screenshot('screenshot.png')
首选项不支持无头浏览器
截至2021年2月
https://bugs.chromium.org/p/chromedriver/issues/detail?id=1925
Headless chrome不支持首选项设置。您只能使用命令行参数。
支持的完整参数列表如下:
https://peter.sh/experiments/chromium-command-line-switches/
这里你可以看到——blink-settings so,
试
chrome_options.add_arguments('--blink-settings=imagesEnabled=false')
完整的闪烁设置可以在这里访问:
https://chromium.googlesource.com/chromium/blink/+/主/源/核心/框架/Settings.in