Selenium打开外部应用程序的弹窗处理

问题

selenium自动化操作页面跳转到外部应用程序进行下载等操作,各种窗口处理方式无法解决

原因

该窗口属于浏览器窗口,与访问页面无关(已经脱离页面操作层面)

解决

selenium启动浏览器时,对浏览器进行相关窗口设置

解决方式

1、打开应用程序前,打开浏览器开发者模式-network-all

2、触发打开外部应用程序出现窗口,查看红色的报错的请求

3、复制窗口的域名(如图https://apps.apple.com),复制红色报错请求的url协议名称(如图macappstores)

使用如下代码

python 复制代码
chrome_options = webdriver.ChromeOptions()
prefs = {
    "protocol_handler": {
        # 该方法会允许启动,执行中会把本地外部应用唤起。不影响自动化执行,可视化执行时一定程度影响视野
        "allowed_origin_protocol_pairs": {
            # 域名即窗口显示的域名
            # macappstores属于协议名称,从network抓包即可看到。ture表示允许启动,false表示禁止启动(会出现弹窗确认)
            "https://apps.apple.com": {"macappstores": True, "itms-appss": True},
            "https://itunes.apple.com": {"itms-appss": True}
        },
        # 以下方法测试不可用,查找原因需要更新selenium至最新版本(未实验)
        # 该方法理论可以直接不启动应用程序,并且不出现弹窗。最符合实际诉求
        # "excluded_schemes": {
            # ture表示禁止启动,false表示允许启动
            # "https://apps.apple.com": {"macappstores": True},
            # "https://itunes.apple.com": {"itms-appss": True}
        # }
    }
}
chrome_options.add_experimental_option("prefs", prefs)
webdriver.Chrome(driver_path, options=chrome_options)

参考:

https://www.5axxw.com/questions/content/yhke2q

https://blog.csdn.net/qq_26819733/article/details/126799304

相关推荐
Maydaycxc18 小时前
企业内网 RPA 离线部署实践:从选型到落地的完整方案
运维·chrome·python·selenium·自动化·rpa
小卓(friendhan2005)2 天前
基于 Pytest + Selenium + Allure 的博客系统自动化测试实践
selenium·测试工具·pytest
littlebigbar3 天前
亲身体验AI智能体在实际项目中展现的核心能力
人工智能·selenium·测试工具
Land03293 天前
指纹浏览器自动化集成方案|多浏览器RPA适配实战记录
运维·人工智能·爬虫·python·selenium·自动化·rpa
yuanpan3 天前
Python + Selenium 浏览器自动化测试与网页自动登录
开发语言·python·selenium
光影6274 天前
Selenium自动化测试---实战踩坑实录
python·selenium·测试工具·百度
程序员杰哥6 天前
独立搭建UI自动化测试框架
自动化测试·软件测试·python·selenium·测试工具·ui·测试用例
研究点啥好呢9 天前
凯捷 自动化测试(Java+Selenium)面试题精选:10道高频考题+答案解析
java·开发语言·python·selenium·测试工具·求职招聘
yzx99101310 天前
二手交易平台智能客服机器人——基于规则引擎与 Selenium 的自动回复系统
selenium·测试工具·机器人
小新同学^O^10 天前
简单学习--> Selenium自动化测试
学习·selenium·测试工具