解决selenium打开Chrome浏览器自动退出问题

  1. 问题

最近电脑换了新系统,在运行Selenium的时候遇到一个问题,当我执行完程序,浏览器自动关闭了,我在程序中也没有写driver.quit()方法。代码如下:

from selenium import webdriverdriver = webdriver.Chrome()driver.get("https://wwww.baidu.com")

代码运行后,webdriver驱动chrome浏览器打开网页后,便自动退出了。但是系统升级前,运行代码并不会自动退出,除非手动写了退出方法。

  1. 别人的解决方法

网上很多资料写的是设置全局变量,即把打开浏览器的操作放在函数外部,函数执行完毕,浏览器就不会关闭,单这种方法并不管用。例如:

from selenium import webdriver# 打开浏览器驱动driver = webdriver.Chrome(r'd:\chromedriver.exe')driver.implicitly_wait(10)class ServiceConfig():# 定义prepareWork函数,做准备工作def prepareWork(self,url):driver.get(url)if __name__ == '__main__':url = 'https://www.baidu.com'sc = ServiceConfig()sc.prepareWork(url)

3.最终解决方案
经过排查发现,之前电脑的selenium版本是4.1.1,运行不会自动退出;升级到selenium最新版本4.7.2后,会出现这个问题。
于是将selenium版本回退到4.1.1,成功解决。