使用ChromeDriver使用Selenium访问某些静态文件(例如hudoig.gov/sites/default/files/documents/2016-FW-1007.pdf(随机示例)时,该文件会自动下载到我的默认下载目录中。
是否有办法禁用此默认行为并防止文件被保存?谢谢。
NB:我的问题类似于以下未解决的问题,但就我而言,我实际上想禁用下载,即使单击下载链接时也是如此: Is it possible to disable file download in chrome using selenium
答案 0 :(得分:1)
Preferences for ChromeDriver是实验性选择。
您可以明确设置下载首选项,并直接在Chrome浏览器中打开PDF文档。
例如:
from selenium import webdriver
options = webdriver.ChromeOptions()
prefs = {
"download.open_pdf_in_system_reader": False,
"download.prompt_for_download": True,
"plugins.always_open_pdf_externally": False
}
options.add_experimental_option(
"prefs", prefs
)
driver = webdriver.Chrome(
options=options
)
driver.get(
"https://www.hudoig.gov/sites/default/files/documents/2016-FW-1007.pdf"
)
driver.close()
或者您可以设置下载位置以将文档写入虚拟设备文件,因为/dev/null
有效地将其丢弃。
例如:
prefs = {
"download.open_pdf_in_system_reader": False,
"download.prompt_for_download": True,
"download.default_directory": "/dev/null",
"plugins.always_open_pdf_externally": False
}
options.add_experimental_option(
"prefs", prefs
)
您可以将下载限制设置为block all downloads。
prefs = {
"download_restrictions": 3,
}
options.add_experimental_option(
"prefs", prefs
)
答案 1 :(得分:1)
您可以采用的另一种方法是禁用浏览器的下载功能。即,配置here中讨论过的DownloadRestrictions
策略。