0


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 webdriverdriver = 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 Servicefrom selenium.webdriver.chrome.options import Optionsoptions = Options()options.add_experimental_option("detach",True)driver = webdriver.Chrome(service=Service(<chromedriver.exe path>), options=options)
  • 这是实验性质的option
  • 融合到代码中from selenium.webdriver.chrome.service import Servicefrom selenium.webdriver.chrome.options import Optionsfrom selenium import webdriveroptions = 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 seleniumpip instsall selenium==4.3.0
  • 再次运行代码,也OK了。
  • 感觉是selenium4.6配合chromedriver驱动出现的问题,firefox在selenium4.6的时候没有该问题。

本文转载自: https://blog.csdn.net/Mantou023/article/details/134803393
版权归原作者 wuxianfeng023 所有, 如有侵权,请联系我们删除。

“Selenium4.6版本浏览器自动退出问题”的评论:

还没有评论