当前位置: 首页 > news >正文

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

在这里插入图片描述

问题

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

原因

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

解决

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

解决方式

1、打开应用程序前,打开浏览器开发者模式-network-all
2、触发打开外部应用程序出现窗口,查看红色的报错的请求
3、复制窗口的域名(如图https://apps.apple.com),复制红色报错请求的url协议名称(如图macappstores)
在这里插入图片描述
使用如下代码

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


http://www.mrgr.cn/news/52997.html

相关文章:

  • vue使用 jsplumb 生成流程图
  • 【端到端】华科X地平线:VAD, 基于矢量场景表征的端到端自动驾驶
  • Spark等大数据处理框架的Java API
  • 【远程监控新体验】OpenObserve结合内网穿透无公网IP远程访问全攻略
  • OpenCV高级图形用户界面(19)设置窗口属性的函数setWindowProperty()的使用
  • SpringBoot驱动的智能物流管理解决方案
  • 玄机平台-应急响应-webshell查杀
  • diff 算法
  • 深度学习500问——Chapter17:模型压缩及移动端部署(5)
  • 【艾思科蓝】Imagen:重塑图像生成领域的革命性突破
  • 我谈结构自相似性SSIM——实质度量的是什么?
  • js的for in 和 for of的详解
  • 智能体(Agent)大模型时代的AI革新者
  • YOLOv11改进-卷积-引入小波卷积WTConv 解决多尺度小目标问题
  • JS-常用功能
  • 商城系统如何适应全球化市场的拓展
  • 图片加水印怎么加?步骤非常简单
  • Android应用如何保护用户隐私和数据安全
  • 数据压缩(5)——上下文转换编码
  • isis 不同区域的配置实验