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浏览器自动升级就会导致脚本出错,无法打开浏览器等等情况,对于这种情况 ...
随机推荐
- [C++] - GCC和LLVM对方法 warning: non-void function does not return a value [-Wreturn-type] 的处理差异
最近做一个C++开源项目发现一个奇怪问题,通过clang编译链接执行程序每到有一个就崩溃了,gcc下则没有此问题. 后来通过调试,发现原因是bool返回的方法是没有return语句!问题是为啥还能通过 ...
- 有关二级指针char **p 的问题
int main() { char *str[] = {"welcome", "to", "Fortemdia", "Nanjin ...
- 篇(16)-Asp.Net Core入门实战-权限管理之用户创建与关联角色(ViewModel再用与模型验证二)
入门实战-权限管理之用户创建与关联角色(ViewModel再用与模型验证二) (1).在用户管理着模块中,相比较菜单功能的代码还是比较多的,设计到用户的创建,修改,角色变更和密码重置,同时都集中在列表 ...
- ES系列二之常见问题解决
上篇ES系列一之java端API操作结束后本以为就相安无事了,但生产的问题是层出不穷的:下面我就再记录下近几周遇到的问题以及解决方案: 一 更新ES信息报错 报错信息如下: Use Elasticse ...
- pagehelper踩坑记之分页乱套
我们在使用数据库进行查询时,很多时候会用到分页展示功能,因此除了像mybatis这样的完善的orm框架之外,还有pagehelper这样的插件帮助减轻我们的工作. pagehelper的实现方式是,不 ...
- c++详细学习——继承
通常讲父类(parrent)-子类(child).基类(base)-派生类(derived)和超类(super)-子类(sub) 1 最基础的写法 以下例子为最基本的写法,默认构造 1 enum Ge ...
- git@github.com: Permission denied (publickey). fatal: Could not read from remote repository.
当我们拿到一天别人用的电脑,里面是上一位前辈的git ssh key,这时候我们要自己改,改完之后上传代码到远程repository时, 可能会报git@github.com: Permission ...
- css初始化收集
页面元素样式初始化 * { margin: 0; padding: 0; box-sizing: border-box; } html { font-size: 100px; } /* 去掉a链接的文 ...
- Linux下用rm误删除文件的三种恢复方法
Linux下用rm误删除文件的三种恢复方法 对于rm,很多人都有惨痛的教训.我也遇到一次,一下午写的程序就被rm掉了,幸好只是一个文件,第二天很快又重新写了一遍.但是很多人可能就不像我这么幸运了.本文 ...
- question(The hierarchy of the type MyServlet is inconsistent)——解决tomcat重新添加依赖
在保存代码时突然出现类似于tomcat不能正常使用的警告弹窗,在eclipse中删除tomcat依赖之后,按照以下步骤先在eclipse添加依赖 1.eclipse项目中添加tomcat依赖 wind ...