首页 > 其他分享 >Selenium4.6版本浏览器自动退出问题

Selenium4.6版本浏览器自动退出问题

时间:2022-11-28 14:01:34浏览次数:71  
标签:webdriver 浏览器 chrome driver selenium Selenium4.6 版本 import options

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了。

标签:webdriver,浏览器,chrome,driver,selenium,Selenium4.6,版本,import,options
From: https://www.cnblogs.com/wuxianfeng023/p/16932007.html

相关文章

  • itexpdf 5.x 版本 com.itextpdf.text.Chunk
    //文字块,中文字体需要指定。Chunkc1=newChunk("文字文字",customFont.font12)//加上下划线://第一个参数是线的厚度//第二个参数是线的位置,如果是0就紧贴在......
  • CAP 7.0 版本发布通告 - 支持延迟消息,性能炸了?
    前言今天,我们很高兴宣布CAP发布7.0版本正式版,我们在这个版本中带来了大批新特性以及对性能的优化和改进。自从今年1月份发布6.0版本以来,已经过去了快1年的时间。......
  • Django版本差异
    Django版本差异#一、路由层'''django1.x路由层使用url方法django2.x/3.x路由层使用path方法可以根据习惯使用re_pathpath方法支持5种转换器'''fromdjango.ur......
  • 将文件发送到浏览器
    FileInputstreamfis=newFileInputstream(file);BufferedInputstreambis=newBufferedInputstream(fis);byte[]bytes=newbyte[bis.available()];resp......
  • strcmp绕过/漏洞 PHP5.3之前版本
    待补充1111111111111111111111111111111111111111111pache中的.htaccess.htaccess是什么?全称是HypertextAccess(超文本入口).htaccess文件也被成为分布式配置文件,提供......
  • 转 若依框架代码生成(前后端分离版本)
    https://www.cnblogs.com/dusucyy/ 若依框架代码生成(前后端分离版本) 1、修改代码生成配置编辑resources目录下的application.yml最下面,代码生成这一块。author:......
  • Visual Studio新版本两项改变
    当C++函数中的return关键字后跟非内置类型的表达式时,执行该return语句会将表达式的结果复制到调用函数的返回槽(ReturnSlot)中。为此,将调用非内置类型的复制或移动构......
  • 最新版gym-0.26.2下Atari环境的安装以及环境版本v0,v4,v5的说明
    强化学习的游戏仿真环境可以分为连续控制和非连续控制两类,其中连续控制的以mujoco为主,而非连续控制的以Atari游戏为主,本文对gym下的Atari环境的游戏环境版本进行一定的介绍......
  • asp.net中的报销多级审批工作流 (状态机版本)
    asp.net中的报销多级审批工作流(状态机版本)     上篇​​asp.net中的报销多级审批工作流​​,提到参考了网上一个具体的项目,项目中用状态机工作流完成,基于学习......
  • 了解快照隔离和行版本控制
    了解快照隔离和行版本控制启用快照隔离之后,每个事务的已更新行版本在tempdb中维护。唯一的事务序列号标识每个事务,并且为每个行版本记录这些唯一的编号。事务使用序列号......