Python 官方文档:入门教程 => 点击学习
问题描述: 用PyCharm运行代码打开chrome浏览器后,浏览器自动退出。代码如下: from selenium import WEBdriverdriver = webdriver.Chrome()driver.get('Http:/
用PyCharm运行代码打开chrome浏览器后,浏览器自动退出。代码如下:
from selenium import WEBdriverdriver = 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 webdriverdriver = 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。
希望可以帮助到遇到和我一样问题的小伙伴,感谢阅读!
来源地址:https://blog.csdn.net/v781423070/article/details/128330307
--结束END--
本文标题: pycharm打开chrome自动退出解决方法
本文链接: https://lsjlt.com/news/396112.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0