Selenium打开浏览器后闪退问题解决
笔者这两天在做一个自动化方案,用来优化数据统计。其中一部分数据需要通过云上堡垒机跳转访问,而这个堡垒机在笔者日常使用的火狐浏览器上运行不是很正常(表现在有些复制粘贴按钮显示不太灵敏)。
但在Edge浏览器上基本正常,因此笔者自动化也准备通过Selenium访问Edge浏览器来实现。
然而问题来了,笔者在进行Selenium打开Edge浏览器测试时,发现网页刚被打开后,就闪退了!而终端窗口还会提示
“DevTools listening on ws://127.0.0.1:59791/devtools/browser/78d01a4b-6a19-40ba-8736-b1bca66d5952
[27628:15544:0914/095450.252:ERROR:edge_qqbrowser_importer_utils_win.cc(155)] QQBrowser user data path not found.”
的错误,如下图:

笔者一度以为这是的的确确的闪退,因为既有报错信息,又有闪退行为。
然后一番试验、上网查询、研究,快两天过后,今天终于在恍然间将这个问题算是彻底征服。
节省读者时间,先放解决措施:
这个“闪退”是正常的!而且实质上并非真的闪退,而是Selenium Webdriver的正常行为。
接下来做一个简明的解释,相信遇到过同样疑问的朋友很快就会明白了:
1、Selenium Webdriver对于不同浏览器的行为会有些许差异。而打开网址后的默认行为就是差异之一。
例如使用下面这段大家基本都会默认使用的调用代码:
from selenium import webdriver#driver = webdriver.Edge()
#driver = webdriver.Chrome()
driver = webdriver.Firefox()
driver.get("https://www.baidu.com")
经笔者测试,Firefox会停留在当前页面,默认不会自动关闭浏览器;而Chrome和Edge均会自动关闭浏览器。
就是这个小小的差异,而对于笔者这个日常将火狐浏览器作为默认浏览器,并只在火狐浏览器做了大量自动化工作的人来说,对于浏览器的默认行为潜移默化认可了,误以为Chrome和Edge的自动关闭是“闪退”。。。
因此,如果非要Chrome和Edge不自动关闭,加个延时等待就可以了。
例如:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
import timechrome_options = Options()
chrome_options.add_argument('--incognito') # 添加无痕模式的参数executable_path="C:\chromedriver-win64",
driver = webdriver.Chrome( options=chrome_options)
driver.get("https://www.baidu.com")time.sleep(60)#driver = webdriver.Edge()
#driver.get("https://www.baidu.com")
2、“DevTools listening on ws://127.0.0.1:59791/devtools/browser/”也的确不算是错误信息,笔者认为更准确是告警提示,这个用搜索的智能回答来解释吧,笔者认为回答得挺好,回答如下图:

至此,疑惑及问题彻底解决,笔者内心总算舒坦了:)
恍然醒悟之前,其实笔者也去核对了浏览器版本、也去Chrome和Edge开发者官网下载了对应版本的msedgedriver.exe和chromedriver.exe并将其保存路径加入了系统Path环境变量。同时也检查了Python版本、Selenium版本。这些工作对于因为版本不一致可能引起的真“闪退”应该也是有效果的。
到此,完毕,希望帮助到遇到同样问题或疑惑的朋友们;)
相关文章:
Selenium打开浏览器后闪退问题解决
笔者这两天在做一个自动化方案,用来优化数据统计。其中一部分数据需要通过云上堡垒机跳转访问,而这个堡垒机在笔者日常使用的火狐浏览器上运行不是很正常(表现在有些复制粘贴按钮显示不太灵敏)。 但在Edge浏览器上基本正常&#…...
【图论】最短路应用
1135. 新年好 题目 提交记录 讨论 题解 视频讲解 MarkDown视图Copy 重庆城里有 nn 个车站,mm 条 双向 公路连接其中的某些车站。 每两个车站最多用一条公路连接,从任何一个车站出发都可以经过一条或者多条公路到达其他车站,但不同的…...
Spring Boot实战:使用策略模式优化商品推荐系统
在现代电子商务平台中,个性化的商品推荐系统是提升用户体验和增加销售额的关键。本文将通过一个Spring Boot实战项目,展示如何利用Java的设计模式——策略模式,来优化商品推荐系统。同时,我们将探讨Spring Boot中的一个重要特性&a…...
Navicat导入Sql文件至Mysql数据库,事务失效
Mysql 版本:8.0.39 Navicat 版本:17.x、16.x 结论: Navicat 导入sql文件,事务不会生效,无论怎么设置 mysql.exe 导入sql文件,事务生效 测试 准备一张表 name约束不能为空,用于测试事务失败…...
篮球运动场景物体检测系统源码分享
篮球运动场景物体检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Comp…...
Docker实操:安装MySQL5.7详解(保姆级教程)
介绍 Docker 中文网址: https://www.dockerdocs.cn Docker Hub官方网址:https://hub.docker.com Docker Hub中MySQL介绍:https://hub.docker.com/_/mysql 切换到“Tags”页面,复制指定的MySQL版本拉取命令,例如 :…...
git reflog
git reflog 是一个非常有用的命令,可以让你查看和回滚到 Git 仓库中的任何之前的状态。reflog 记录了你在 Git 仓库中的所有 HEAD 移动历史。下面是使用 reflog 回滚到之前状态的步骤: 1. 查看 Reflog 首先,你需要查看 reflog 记录…...
使用 Vue 3 和 TypeScript 实现带打字效果的仿 AI 分析展示组件
在这篇博客中,我将分享如何用 Vue 3 和 TypeScript 实现一个带打字效果的 AI 分析展示组件。该组件具有如下功能: 动态打字效果:模拟打字机逐步显示内容。自动滚动:内容超出容器高度时自动滚动到最新位置。 1. 组件实现需求 我…...
数据清洗-缺失值填充-K-NN算法(K-Nearest Neighbors, K-NN算法)
目录 一、安装所需的python包二、采用K-NN算法进行缺失值填充2.1代码(完整代码关注底部微信公众号获取)2.2以某个缺失值数据进行实战2.2.1代码运行过程截屏:2.2.2填充后的数据截屏: 三、K 近邻算法 (K-Nearest Neighbors, KNN) 介…...
爬虫----webpack
目录 一. 什么是webpack 出现的原因:同名函数 概念: 特征:大量缩进 webpack的格式 简单的webpack格式: 详细的webpack格式: 几个参数的运用 1. webpack数组形式 2. webpack对象格式 3.多个js文件打包 打印要扣的代码 …...
Spring Mybatis PageHelper分页插件 总结
1.简介 使用分页插件可以帮助我们自动分页,不用手动在写sql的分页逻辑。 2.配置步骤 在pom.xml中添加依赖 <dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.1.11<…...
9、等保测评介绍
数据来源:9.等保测评介绍_哔哩哔哩_bilibili 信息系统等级测评 信息系统等级测评是测评机构依据国家信息安全等级保护制度的规定,按照相关管理规范和技术标准,对未涉及国家秘密的信息系统的安全等级保护状况进行检测评估的活动。 等级测评…...
解决Gson将长数字( json字符串)转换为科学记数法格式
Gson(又称Google Gson)是Google公司发布的一个开放源代码的Java库,主要用途为序列化Java对象为JSON字符串,或反序列化JSON字符串成Java对象。 依赖 Gradle: dependencies {implementation com.google.code.gson:gson:2.11.0 }…...
php环境搭建教程
PHP环境搭建教程 在构建和开发PHP应用程序时,搭建一个稳定、高效的PHP环境是基础且关键的一步。本教程将详细介绍如何在不同操作系统(Windows和Linux)上搭建PHP环境,包括Apache服务器的安装与配置、PHP的安装与配置、MySQL的安装…...
测试ASP.NET Core的WebApi项目调用WebService
虚拟机中部署的匿名访问的WebService,支持简单的加减乘除操作。本文记录在WebApi中调用该WebService的方式。 VS2022创建WebApi项目,然后在解决方案资源管理器的Connected Services节点点右键,选择管理连接的服务菜单。 点击下图圈红处…...
【用Java学习数据结构系列】对象的比较(Priority Queue实现的前提)
看到这句话的时候证明:此刻你我都在努力 加油陌生人 个人主页:Gu Gu Study 专栏:用Java学习数据结构系列 喜欢的一句话: 常常会回顾努力的自己,所以要为自己的努力留下足迹 喜欢的话可以点个赞谢谢了。 作者ÿ…...
快手视频怎么保存到相册?(详细操作)
随着短视频的流行,快手已经成为越来越多人日常生活的一部分。无论是搞笑片段、旅行记录,还是生活点滴,用户们每天都会在快手上浏览到大量有趣的视频。有时候,我们会遇到特别想保存的视频,想要分享到朋友圈,…...
为什么 ECB 模式不安全
我们先来简单了解下 ECB 模式是如何工作的 ECB 模式不涉及链接模式,所以也就用不着初始化向量,那么相同的明文分组就会被加密成相同的密文分组,而且每个分组运算都是独立的,这也就意味着可以并行提高运算效率,但也正是…...
『功能项目』事件中心处理怪物死亡【55】
本章项目成果展示 我们打开上一篇54回调函数处理死亡的项目, 本章要做的事情是用事件中心处理怪物死亡后的逻辑 首先打开之前事件中心脚本(不做更改,调用即可): using System.Collections.Generic; using UnityEngine…...
一个安卓鸿蒙化工具
DevEco插件,为已有安卓项目鸿蒙化加速。 目前支持: 1、安卓Vector Assets转svg; 2、json转ets model; 3、kotlin model转ets model; 下载地址:andtoharplugin1.1.0 安装: deveco插件安装选硬…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...
Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...
Java 二维码
Java 二维码 **技术:**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...
MySQL 索引底层结构揭秘:B-Tree 与 B+Tree 的区别与应用
文章目录 一、背景知识:什么是 B-Tree 和 BTree? B-Tree(平衡多路查找树) BTree(B-Tree 的变种) 二、结构对比:一张图看懂 三、为什么 MySQL InnoDB 选择 BTree? 1. 范围查询更快 2…...
MFE(微前端) Module Federation:Webpack.config.js文件中每个属性的含义解释
以Module Federation 插件详为例,Webpack.config.js它可能的配置和含义如下: 前言 Module Federation 的Webpack.config.js核心配置包括: name filename(定义应用标识) remotes(引用远程模块࿰…...
云原生周刊:k0s 成为 CNCF 沙箱项目
开源项目推荐 HAMi HAMi(原名 k8s‑vGPU‑scheduler)是一款 CNCF Sandbox 级别的开源 K8s 中间件,通过虚拟化 GPU/NPU 等异构设备并支持内存、计算核心时间片隔离及共享调度,为容器提供统一接口,实现细粒度资源配额…...
Python网页自动化Selenium中文文档
1. 安装 1.1. 安装 Selenium Python bindings 提供了一个简单的API,让你使用Selenium WebDriver来编写功能/校验测试。 通过Selenium Python的API,你可以非常直观的使用Selenium WebDriver的所有功能。 Selenium Python bindings 使用非常简洁方便的A…...
rknn toolkit2搭建和推理
安装Miniconda Miniconda - Anaconda Miniconda 选择一个 新的 版本 ,不用和RKNN的python版本保持一致 使用 ./xxx.sh进行安装 下面配置一下载源 # 清华大学源(最常用) conda config --add channels https://mirrors.tuna.tsinghua.edu.cn…...
