selenium取消chrome内核浏览器下载文件时出现出现的弹窗

本文介绍了如何通过设置Chrome和Edge浏览器的启动参数,以避免在使用Selenium自动化测试时出现文件下载弹窗。通过调整浏览器的偏好设置,可以直接将文件保存到指定目录,无需用户确认。示例代码详细展示了如何为Edge和Chrome配置不显示下载提示并设定默认下载路径。
摘要由CSDN通过智能技术生成

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是一个用于自动化Web应用程序测试的工具。它支持多种浏览器,包括Edge浏览器。使用Selenium进行自动化测试可以帮助开发人员和测试人员自动执行各种测试任务,如功能测试、回归测试等。Selenium提供了多种编程语言的支持,包括Python。通过编写Python脚本,可以使用Selenium来模拟用户在Edge浏览器中的操作,如点击、输入文本等。可以使用Selenium的定位方法来定位页面上的元素,如id、class、xpath等。此外,还可以使用Selenium的unittest框架来组织和管理测试用例。总之,Selenium是一个强大的自动化测试框架,可以与Edge浏览器一起使用来进行自动化测试。\[1\]\[2\] #### 引用[.reference_title] - *1* [selenium+Edge浏览器实现web端自动化测试](https://blog.csdn.net/qq_48728737/article/details/118014512)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Selenium自动化测试](https://blog.csdn.net/mz474920631/article/details/123848953)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值