python - 在 python 中使用 Selenium 在 Headless chrome 中下载文件时文件未保存
问题描述
我能够以正常的 chrome 模式下载文件。其中,我无法看到使用 selenium python 在无头 chrome 中发生的下载。
我希望它不会保存下载的文件
尝试了互联网上许多用户提供的解决方案,但没有一个有效
options = Options()
options.add_argument('--headless')
options.add_argument('--disable-gpu')
prefs = {'download.default_directory' :'/Users/nrpss/Downloads'}
options.add_experimental_option('prefs', prefs)
download_path = '/Users/nrpss/Downloads'
browser = webdriver.Chrome('chromedriver.exe', options=options)
browser.command_executor._commands["send_command"] = ("POST", '/session/$sessionId/chromium/send_command')
params = {'cmd': 'Page.setDownloadBehavior', 'params': {'behavior': 'allow', 'downloadPath': download_path}}
command_result = browser.execute("send_command", params)
print ("Headless Chrome Initiated")
### Below is ID for the Download link on webpage
browser.find_element_by_id('downloadExportLink').click()
time.sleep(50)
def download_completed():
for i in os.listdir('/Users/nrpss/Downloads'):
if ".crdownload" in i:
time.sleep(1)
download_completed()
预期结果:文件应下载并保存在下载文件夹中。
解决方案
尝试添加download.prompt_for_download
=False
和download.directory_upgrade
=True
你的汽车设置safebrowsing_for_trusted_sources_enabled
为False
以及safebrowsing.enabled
.
尝试将您的偏好更改为:
prefs = {'download.default_directory' :'/Users/nrpss/Downloads',
"download.prompt_for_download": False,
"download.directory_upgrade": True,
"safebrowsing_for_trusted_sources_enabled": False,
"safebrowsing.enabled": False
}
options.add_experimental_option('prefs', prefs)
希望这对你有帮助!
推荐阅读
- python - 根据国外 PostLikes 为用户获取帖子
- android - 使用定位插件(Flutter)时出错
- selenium - 如何使用 Selenium WebDriver 在 Firefox 和 IE 上模拟移动设备?
- javascript - FlatList 在滚动时隐藏
- python - 如何使用 git bash 运行 python ('base' : conda) 脚本文件
- java - GitLab4j 如何从 GitLab 获取文件
- jsonschema - Json-Schema 演变:正在注册的模式与早期模式不兼容
- c# - 并行运行 WebApp 和 API 以执行 e2e 测试
- r - 使 shinyWidgets 输入大小取决于屏幕大小的最简单方法是什么?
- javascript - 使用 javascript 关闭窗口不起作用