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版本浏览器自动退出问题的更多相关文章

  1. Visual Studio 2017 本地调试 Chrome浏览器自动退出

    在使用VS 2017(15..6 .15.7)对.NET Core MVC应用程序进行本地调试的时候,选择使用Chrome浏览器.但输入中文 就自动关闭Chrome浏览器,随后结束调试.但复制.粘贴中 ...

  2. DBImport V3.7版本发布及软件稳定性(自动退出问题)解决过程分享

    DBImport V3.7介绍: 1:先上图,再介绍亮点功能: 主要的升级功能为: 1:增加(Truncate Table)清表再插入功能: 清掉再插,可以保证两个库的数据一致,自己很喜欢这个功能. ...

  3. 在CMD下启动vmware、Xshell连接虚拟机以及控制Chrome浏览器自动执行js登录校园网

    标题有点长,主要是写个bat出来玩玩, (1)不用每次都手动关闭mysql服务(我不想把它设为手动启动,有强迫症) (2)然后希望每次vmware能自动连上虚拟机 (3)以及每次Xshell都能自动启 ...

  4. AngularJS开发指南7:AngularJS本地化,国际化,以及兼容IE低版本浏览器

    AngularJS本地化,国际化 国际化,简写为i18n,指的是使产品快速适应不同语言和文化. 本地化,简称l10n,是指使产品在特定文化和语言市场中可用. 对开发者来说,国际化一个应用意味着将所有的 ...

  5. SQL2008安装自动退出

    一同事安装sql 2008 然后删除过,后来再也装不上了,安装SQL2008操作执行到安装支持文件的时候就会出现安装过程自动退出的现象. 网上很多人说需要卸载,我看原因不一定是这个,因为根本没有安装成 ...

  6. 完美解决windows+ngnix+phpcgi自动退出的问题

    [摘要]在windows下搭建nginx+php环境时,php-cgi.exe会经常性的自动关闭退出,本文介绍通过使用xxfpm进程管理器管理php-cgi.exe. php-cgi.exe在wind ...

  7. Webpack 2 视频教程 007 - 配置 WDS 进行浏览器自动刷新

    原文发表于我的技术博客 这是我免费发布的高质量超清「Webpack 2 视频教程」. Webpack 作为目前前端开发必备的框架,Webpack 发布了 2.0 版本,此视频就是基于 2.0 的版本讲 ...

  8. docker 启动 centos 镜像,容器会自动退出

    docker启动centos镜像有两种版本可以解决自动退出的问题: 方式一: docker run -d -it [image-ID] /bin/sh 方式二: 在启动脚本里面增加一个执行进程: 1. ...

  9. Android WebDriver 浏览器自动测试工具介绍

    Selenium WebDriver 是浏览器自动测试工具,提供轻量级和优雅的方式来测试web应用.Selenium WebDriver作为Android SDK extra,支持Android 2. ...

  10. 禁止Chrome浏览器自动升级

    对于我们测试人员来说,浏览器自动升级是非常可怕的,浏览器的升级会导致出现各种bug,比如我们常用的Selenium,如果Chrome浏览器自动升级就会导致脚本出错,无法打开浏览器等等情况,对于这种情况 ...

随机推荐

  1. MySQL数据库的性能分析 ---图书《软件性能测试分析与调优实践之路》-手稿节选

    1  .MySQL数据库的性能监控 1.1.如何查看MySQL数据库的连接数 连接数是指用户已经创建多少个连接,也就是MySQL中通过执行 SHOW  PROCESSLIST命令输出结果中运行着的线程 ...

  2. Hutool 的学习

    1. Hutool 介绍 Hutool 是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以"甜甜 ...

  3. 渗透技巧基于Swagger-UI的XSS

    目录 免责声明: 漏洞简述: 漏洞实现 POC 漏洞利用 如何大规模找到 Swagger UI Google FOFA XRAY 修复 免责声明:   本文章仅供学习和研究使用,严禁使用该文章内容对互 ...

  4. DL账号密码生命周期信息流图

  5. JS图片放大镜功能实现

    JS图片放大镜功能实现 技术关键点 1.左侧和上侧距离,在一个水平位置和垂直位置中有我们可以挪动的区域,就是原图片区域,鼠标挪动位置是一个块状位置,他的左侧和上侧距离浏览器上侧和左侧分别有一个长度,我 ...

  6. Windows之应用安装程序 —— winget

    大家都用过Linux中的应用程序安装工具,如yum.apt.rpm等工具进行安装自己想要的一些工具或则软件之类的,当然Linux操作系统还是很强大的有很多类似的命令来安装我们所需要的程序,但是wind ...

  7. 图文详解在VMware Workstation 16 PRO虚拟机上安装Rocky 8.6 linux系统

    一.安装VMware Workstation虚拟机 下载VMware Workstation 16 PRO虚拟机 https://www.vmware.com/cn/products/workstat ...

  8. 解决"raise EnvironmentError("%s not found" % (_mysql_config_path,)) OSError: mysql_config not found"报错

    redhat系(如centos) yum install mysql-devel debain系(如ubuntu) sudo apt-get install libmysqlclient-dev

  9. 关于解决scapy.error.Scapy_Exception: tcpdump is not available. Cannot use filter !报错

    解决办法 sudo apt install tcpdump 后续 我特意没写到我的 arp 攻击那篇文章里面,就是为了水一片文章

  10. 关于python路径的问题思考

    我相信你肯定遇到过这样的报错 Traceback (most recent call last): File "main.py", line 549, in <module& ...