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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/893692.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

RDD优化:缓存和checkpoint机制、数据共享(广播变量、累加器)、RDD的依赖关系、shuffle过程、并行度说明

文章目录 1. 缓存和checkpoint机制1.1 缓存使用1.2 checkpoint1.3 缓存和checkpoint的区别 2. 数据共享2.1 广播变量2.2 累加器 3. RDD依赖关系4.shuffle过程4.1 shuffle介绍4.2 spark计算要尽量避免shuffle 5. 并行度 1. 缓存和checkpoint机制 缓存和checkpoint也叫作rdd的持…

SAM应用:医学图像和视频中的任何内容分割中的基准测试与部署

医学图像和视频中的任何内容分割:基准测试与部署 目录 摘要:一、引言1.1 SAM2 在医学图像和视频中的应用 二.结果2.1 数据集和评估协议2.2 二维图像分割的评估结果 三 讨论四 局限性和未来的工作五、方法5.1数据来源和预处理5.2 微调协议5.3 评估指标 总…

无人机视角下火灾检测数据集 共12736张 标注文件为YOLO适用的txt格式。已划分为训练集、验证集、测试集。类别:Fire yolov5-v10通用

无人机视角下火灾检测数据集 共12736张 标注文件为YOLO适用的txt格式。已划分为训练集、验证集、测试集。类别:Fire yolov5-v10通用 无人机视角下火灾检测数据集 共12736张 标注文件为YOLO适用的txt格式。已划分为训练集、验证集、测试集。类别:Fire yol…

Apple Find My介绍

0 Preface/Foreword 1 Apple Find My介绍

【Vue】Vue(八)Vue3.0 使用ref 和 reactive创建响应式数据

ref 创建:基本类型的响应式数据 **作用:**定义响应式变量。语法:let xxx ref(初始值)。**返回值:**一个RefImpl的实例对象,简称ref对象或ref,ref对象的value属性是响应式的。注意点: JS中操作…

达梦8-SQL日志配置与分析工具

以 dmsql_数据库实例名.log 类型命名的文件为跟踪日志文件,跟踪日志内容包含系统各会话执行的 SQL 语句、参数信息、错误信息等。跟踪日志主要用于分析错误和分析性能问题,比如,可以挑出系统现在执行速度较慢的 SQL 语句,进而对其…

以JavaScript的学习角度看Axios,并以spring boot+vue3为例具体分析实现

什么是Axios Axios 是一个基于 Promise 的 HTTP 客户端,用于在浏览器和 后端 中发送异步的 HTTP 请求。它功能强大、易用,常用于与 API 交互,发送 GET、POST、PUT、DELETE 等请求。 Axios 的主要特点: 支持 Promise Axios 基于 …

鸿蒙应用开发:全面认识鸿蒙系统

前言 随着智能设备的普及和物联网的发展,对操作系统的需求也越来越多样化。鸿蒙操作系统作为一款面向全场景的分布式操作系统,其适用范围非常广泛,从智能手机到家用电器,再到工业设备,都能找到应用场景。特别是在智能…

【含开题报告+文档+PPT+源码】基于SSM的景行天下旅游网站的设计与实现

开题报告 随着互联网的快速发展,旅游业也逐渐进入了数字化时代。作为一个旅游目的地,云浮市意识到了互联网在促进旅游业发展方面的巨大潜力。为了更好地推广云浮的旅游资源,提高旅游服务质量,云浮市决定开发一个专门的旅游网站。…

使用开源的 Vue 移动端表单设计器创建表单

FcDesigner Vant 版是一款基于 Vue3.0 的移动端低代码可视化表单设计器工具,通过数据驱动表单渲染。可以通过拖拽的方式快速创建表单,提高开发者对表单的开发效率,节省开发者的时间。 源码下载 | 演示地址 | 帮助文档 本项目采用 Vue3.0 和 …

数字后端零基础入门系列 | Innovus零基础LAB学习Day1

一 Floorplan 数字IC后端设计如何从零基础快速入门?(内附数字IC后端学习视频) Lab5-1这个lab学习目标很明确——启动Innovus工具并完成设计的导入。 在进入lab之前,我们需要进入我们的FPR工作目录。 其中ic062为个人服务器账户。比如你端…

竞品分析|用户体验五要素|KANO模型

用户体验五要素 我感觉产品的设计师从最底层的战略层确定,再依次上升一层层确定直至最后确定表现层输出给用户的视觉效果。 KANO模型 KANO 模型是东京理工大学教授狩野纪昭(Noriaki Kano)发明的对用户需求分类和优先排序的有用工具,以分析用户需求对用…

harbor 如何做到物理删除镜像 harbor镜像清理脚本

一、背景 相比于nexus,harbor的一大优点是方便及时清理无用的docker镜像。本文就harbor怎么设置清理,梳理一下具体的操作办法。 harbor 版本是 v2.9.0 二、目标 随着我们推送至仓库的镜像越来越多,带来的一个最大运维问题就是存储空间的浪…

SL3037B降压恒压芯片DC24伏输入5伏输出带单片机,电流100mA

一、SL3037B芯片概述 SL3037B是一款内置功率MOSFET的单片降压型开关模式转换器,具有高效、稳定、外围元器件少等特点。它能够在宽输入电源范围(5.5~60V)内实现0.6A的峰值输出电流,并具有出色的线电压和负载调整率。此外&#xff…

利用LangChain实现大语言模型与数据库的交互对话

大语言模型使用LangChain与数据库对话 大型语言模型(LLMs)的兴起在技术上带来了重大转变,使开发者能够创建曾经难以想象的应用程序。LangChain 是一个提示编排工具,利用LLMs的能力改变你与数据库的通信方式。通过LangChain&#…

从零讲解线性回归(Linear Regression)

Linear Regression 线性回归 线性回归是一种简单且常用的技术,用来预测连续变量,假设预测变量(自变量, x_i )和结果变量(因变量, y_i )之间存在线性关系。线性回归公式&#xff08…

Qt自定义一个圆角对话框

如何得到一个圆角对话框? 步骤: 1、继承自QDiaglog 2、去掉系统自带的边框 3、设置背景透明,不设置4个角会有多余的部分出现颜色 4、对话框内部添加1个QWidget,给这个widget设置圆角,并添加到布局中让他充满对话框 5、后续对…

智慧校园打架斗殴检测预警系统 异常奔跑检测系统 Python 和 OpenCV 实现简单

在当今数字化时代,智慧校园建设已成为教育领域的重要发展方向。校园安全作为学校管理的重中之重,如何借助先进的技术手段实现高效、精准的安全监控,成为了教育工作者和技术专家共同关注的焦点。其中,智慧校园打架斗殴检测预警系统…

linux线程 | 线程的控制(上)

前言:本节内容为线程的控制。在本篇文章中, 博主不仅将会带友友们认识接口, 使用接口。 而且也会剖析底层,带领友友们理解线程的底层原理。 相信友友们学完本节内容, 一定会对线程的控制有一个很好的把握。 那么&#…

Spring AI 整体介绍_关键组件快速入门_prompt_embedding等

Spring AI:Java开发者的AI集成新利器 在过去,Java开发者在构建AI应用时面临着缺乏统一框架的问题,导致不同AI服务的集成过程复杂且耗时。Spring AI应运而生,旨在为基于Java的应用程序提供一个标准化、高效且易于使用的AI开发平台…