admin管理员组文章数量:1531696
1. 简介
在使用selenium操作浏览器下载文件时,在下载完文件后通常会弹出提示,询问用户是否保存,并且该弹窗属于浏览器本身,selenium无法对其进行捕获和操作,如下图:
原图
对于chrome内核的浏览器来说,可以通过设置其启动项,来对浏览器的默认下载目录、以及该弹窗进行控制,从而让浏览器直接将文件下载到默认目录,而不再弹出询问框。
2. edge浏览器设置实例
edge浏览器的设置实例如下:
class GetEdgeDriver:
__singleton = None
def __new__(cls, *args, **kwargs):
if cls.__singleton is None:
options = {
"browserName": "MicrosoftEdge",
"version": "",
"platform": "WINDOWS",
"ms:edgeOptions": {
"extensions": [], "args": ["--start-maximized"], # 添加最大化窗口运作参数
"prefs": {'download.prompt_for_download': False, 'download.default_directory': "C:\\Download", }
},
}
cls.__singleton = Edge(capabilities=options)
cls.__singleton.command_executor._commands["send_command"] = (
"POST", '/session/$sessionId/chromium/send_command')
params = {'cmd': 'Page.setDownloadBehavior', 'params': {'behavior': 'allow', 'downloadPath': "C:\\Download"}}
cls.__singleton.execute("send_command", params)
return cls.__singleton
2. Chrome浏览器设置实例
class GetChromeDriver:
__singleton = None
def __new__(cls, *args, **kwargs):
if cls.__singleton is None:
# 配置chrome以及设置chrome的默认下载目录,防止其出现下载目录选择弹窗和“此类型文件.....”的选择框
options = ChromeOptions()
prefs = {'download.prompt_for_download': False, 'download.default_directory': "C:\\Download", }
options.add_experimental_option("prefs", prefs)
cls.__singleton = Chrome(options=options)
cls.__singleton.command_executor._commands["send_command"] = (
"POST", '/session/$sessionId/chromium/send_command')
params = {'cmd': 'Page.setDownloadBehavior',
'params': {'behavior': 'allow', 'downloadPath': "C:\\Download"}}
cls.__singleton.execute("send_command", params)
cls.__singleton.maximize_window()
return cls.__singleton
版权声明:本文标题:selenium取消chrome内核浏览器下载文件时出现出现的弹窗 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1726114279a1055938.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论