Selenium4.6版本浏览器自动退出问题
Selenium4.6版本浏览器自动退出问题
代码
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.baidu.com') # 这一步其实没必要,只是为了演示
现象
打开百度后chrome浏览器就关闭掉了
代码的控制台并无任何报错
正常应该保留的
环境
- python 3.10.8
- pycharm 2021.2.3
- chrome 107.0.5304.122
- chromedriver 107.0.5304.18
- selenium 4.6.1
分析
- 这个问题在之前的版本中几乎没遇到过,这一期的学员很多都反馈有该问题,推测应该是新版本导致的
- python 没有变化,排除
- pycharm 更没有变化(脱离pycharm运行一样报错,排除)
- chrome 更新了
- chromedriver 更新了
- selenium 更新了
尝试1: 分析日志
获取selenium的日志
代码
from selenium import webdriver
driver = webdriver.Chrome(service_args=['--verbose'],service_log_path='selenium.log')
driver.get('https://www.baidu.com')
差异日志: 对比正常的环境有2行比较异常
[1669339280.964][INFO]: [9a850cc416a680214e963aab4064f86b] COMMAND QuitAll {}
[1669339281.111][INFO]: [9a850cc416a680214e963aab4064f86b] RESPONSE QuitAll
不得法
尝试2: stackoverflow
https://stackoverflow.com/questions/74567988/browser-quit-automatically-by-using-selenium-on-chrome
提交到stackoverflow上,有人建议
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_experimental_option("detach", True)
driver = webdriver.Chrome(service=Service(<chromedriver.exe path>), options=options)
这是实验性质的option
融合到代码中
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium import webdriver
options = Options()
options.add_experimental_option("detach", True)
driver = webdriver.Chrome(options=options)
driver.get('https://www.baidu.com')
效果是ok的
但以前是ok的,现在这么麻烦,对初学者并不友好
尝试3: 对比分析
对比之前好的环境,发现差异主要是浏览器、驱动和selenium,把浏览器和驱动都同步到最新版本,环境依然是好的,那差异只有selenium版本(有问题的是selenium 4.6.1,好的版本是selenium4.3.0)
降级版本: 如果你是虚拟环境,请注意执行位置
pip uninstall selenium
pip instsall selenium==4.3.0
再次运行代码,也OK了。
感觉是selenium4.6配合chromedriver驱动出现的问题,firefox在selenium4.6的时候没有该问题。
Selenium4.6版本浏览器自动退出问题的更多相关文章
- Visual Studio 2017 本地调试 Chrome浏览器自动退出
在使用VS 2017(15..6 .15.7)对.NET Core MVC应用程序进行本地调试的时候,选择使用Chrome浏览器.但输入中文 就自动关闭Chrome浏览器,随后结束调试.但复制.粘贴中 ...
- DBImport V3.7版本发布及软件稳定性(自动退出问题)解决过程分享
DBImport V3.7介绍: 1:先上图,再介绍亮点功能: 主要的升级功能为: 1:增加(Truncate Table)清表再插入功能: 清掉再插,可以保证两个库的数据一致,自己很喜欢这个功能. ...
- 在CMD下启动vmware、Xshell连接虚拟机以及控制Chrome浏览器自动执行js登录校园网
标题有点长,主要是写个bat出来玩玩, (1)不用每次都手动关闭mysql服务(我不想把它设为手动启动,有强迫症) (2)然后希望每次vmware能自动连上虚拟机 (3)以及每次Xshell都能自动启 ...
- AngularJS开发指南7:AngularJS本地化,国际化,以及兼容IE低版本浏览器
AngularJS本地化,国际化 国际化,简写为i18n,指的是使产品快速适应不同语言和文化. 本地化,简称l10n,是指使产品在特定文化和语言市场中可用. 对开发者来说,国际化一个应用意味着将所有的 ...
- SQL2008安装自动退出
一同事安装sql 2008 然后删除过,后来再也装不上了,安装SQL2008操作执行到安装支持文件的时候就会出现安装过程自动退出的现象. 网上很多人说需要卸载,我看原因不一定是这个,因为根本没有安装成 ...
- 完美解决windows+ngnix+phpcgi自动退出的问题
[摘要]在windows下搭建nginx+php环境时,php-cgi.exe会经常性的自动关闭退出,本文介绍通过使用xxfpm进程管理器管理php-cgi.exe. php-cgi.exe在wind ...
- Webpack 2 视频教程 007 - 配置 WDS 进行浏览器自动刷新
原文发表于我的技术博客 这是我免费发布的高质量超清「Webpack 2 视频教程」. Webpack 作为目前前端开发必备的框架,Webpack 发布了 2.0 版本,此视频就是基于 2.0 的版本讲 ...
- docker 启动 centos 镜像,容器会自动退出
docker启动centos镜像有两种版本可以解决自动退出的问题: 方式一: docker run -d -it [image-ID] /bin/sh 方式二: 在启动脚本里面增加一个执行进程: 1. ...
- Android WebDriver 浏览器自动测试工具介绍
Selenium WebDriver 是浏览器自动测试工具,提供轻量级和优雅的方式来测试web应用.Selenium WebDriver作为Android SDK extra,支持Android 2. ...
- 禁止Chrome浏览器自动升级
对于我们测试人员来说,浏览器自动升级是非常可怕的,浏览器的升级会导致出现各种bug,比如我们常用的Selenium,如果Chrome浏览器自动升级就会导致脚本出错,无法打开浏览器等等情况,对于这种情况 ...
随机推荐
- python 队列(QUEUE)
QUEUE python中多线程编程的数据结构 基本FIFO队列 class Queue.Queue(maxsize=0) 先进先出,maxsize为队列中能存放的数据个数上限. import Que ...
- excel公式与快捷操作
将首行的公式,运用到这一整列 1.选中要输入公式的第一个单元格,SHIFT+CTRL+方向键下,在编辑栏中输入公式,按下CTRL+回车: 2.先输入要填充的公式,按下SHIFT+CTRL+方向键下,再 ...
- Day06:运算符详解
运算符 算术运算符:+,-,*,/,%(取余:也叫模运算),++(自增),--(自减)........... 二次运算符+,-,*,/ int a=10; int b=20; int c=50; in ...
- 2021年WebStorm安装破解教程
一.WebStorm工具介绍 WebStorm是一款JavaScript 开发工具,为JavaScript和编译到JavaScript语言.Node.js.HTML和CSS提供了智能编码帮助.享受代码 ...
- PHP 正在“杀死”Python
最近,我突然发现自己好像又在逆潮流而动.可能我的想法与很多朋友不同,我认为 PHP 这个编程语言界的"混蛋"比以往任何时候都更受欢迎. 或许你会质疑--PHP 不是已经完蛋了吗?市 ...
- jquery组件解决option选项框的样式自定义方案
记录一下今天工作中遇到的一个需求和自行找到的解决办法 需求: 在原始的select选项框中的增加一个标识.(我想增加一个具有样式的span元素,试了半天在option里无法添加span,更别说具有样式 ...
- Java锁的逻辑(结合对象头和ObjectMonitor)
我们都知道在Java编程中多线程的同步使用synchronized关键字来标识,那么这个关键字在JVM底层到底是如何实现的呢. 我们先来思考一下如果我们自己实现的一个锁该怎么做呢: 首先肯定要有个标记 ...
- 根据经纬度算UTM带号
1. UTM (Universal Transverse Mercator)坐标系是由美国军方在1947提出的.虽然我们仍然将其看作与"高斯-克吕格"相似的坐标系统,但实际上UT ...
- 用excel表画一个乐高
一.背景:在商场看到一个超级玛丽的乐高图感觉使用excel的颜色填充也能画出来,并且可以借助python来实现 二.excel表如何绘制正方形:1.统一设置行高与列宽excel表单元格的行与列的默认计 ...
- NavigationDuplicated Navigating to current location (“/XXX”) is not allowed
导航不允许导航到当前位置https://stackoverflow.com/questions/57837758/navigationduplicated-navigating-to-current- ...