python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > pycharm打开chrome自动退出

pycharm打开chrome自动退出错误的解决方法

作者:古代宇航员

这篇文章主要给大家介绍了关于pycharm打开chrome自动退出错误的解决方法,文中通过实例代码以及图文将解决的办法介绍的非常详细,需要的朋友可以参考下

问题描述:

用pycharm运行代码打开chrome浏览器后,浏览器自动退出。代码如下:

from selenium import webdriver
driver = webdriver.Chrome()
driver.get('http://www.baidu.com')

运行环境:

pycharm版本:2022.3

python版本:3.9.10

分析:

并没有设置quit(),代码执行也没有报错,在网上搜索一番后可能的解释和解决方法如下:

1、代码执行结束后线程随主程序一起结束,内存被回收,浏览器自动关闭。(解释这问题属于正常现象,想要保留浏览器可以设置sleep())

2、因为把driver = webdriver.Chrome()放在了函数内部,函数执行完毕后,程序内所有的步骤都结束了,这段程序的进程也就结束了,浏览器包含在内,所以才会自动退出,解决方法就是设置全局变量,即把打开浏览器的操作放在函数外部,函数执行完毕,浏览器也不会关闭。(我的代码没有函数,所以也不是这个问题)

3、webdriver要与浏览器的版本号匹配,不然浏览器就会闪退。(这个现象是浏览器闪退,并且代码执行会有报错,而且我的版本号也是匹配的,显然不是这个问题)

附上查看版本号代码如下:

from selenium import webdriver
driver = webdriver.Chrome()
 
str1 = driver.capabilities['browserVersion']    #查看chrome版本
str2 = driver.capabilities['chrome']['chromedriverVersion'].split(' ')[0]   #查看python下的chromedriver版本
print(str1)
print(str2)

运行结果:

(只要大版本号一致就行)

顺便再附上chromedriver下载地址:

http://chromedriver.storage.googleapis.com/index.html

chromedriver.exe文件存放位置(以下路径只是参考,根据实际环境来):

1)、python安装目录:C:\Users\username\AppData\Local\Programs\Python\Python39

2)、chrome安装目录:C:\Program Files\Google\Chrome\Application(可以不放)

2023.4.7编辑更新:经测试,安装了selenium版本4.8.3的情况下,即使chromedriver.exe文件不放在python安装目录下,运行代码也不会报错,会自动在C:\Users\用户名\.cache\selenium\chromedriver\win32\目录下自动生成chromedriver.exe文件。这是老版本selenium没有的功能,大大方便了运行维护,不用手动更换文件了,现在会自动生成了。

解决方法:

网上找了一圈后大致就是以上这3个观点,但是看其他人运行相同的代码,别人的chrome就不会自动退出,经过排查,最终确定,问题的原因竟是selenium的版本太高导致,我的selenium的版本是4.7.2,不会自动退出的版本是4.4.3。

卸载4.7.2,重新安装4.4.3,问题解决。

备注1:截止到发这篇文章时,selenium最高版本是4.7.2。

备注2:我挑了4.4.3发现解决了问题,所以也就没有再试其他的版本,也许其他的低版本也可以解决问题。

杂谈:

也许这个chrome自动退出的问题其实并不是个问题,代码成功运行结束,浏览器关闭,可能在selenium4.7.2版本上就是这样运行的,而低版本的selenium在代码运行完成之后就不会自动关闭浏览器,目前来说我比较喜欢后者,所以选择了安装4.4.3。

总结

到此这篇关于pycharm打开chrome自动退出错误的解决方法的文章就介绍到这了,更多相关pycharm打开chrome自动退出内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

阅读全文