目录
- 零、查看Python的安装路径
- 一、Chromedriver放置的位置
- 二、浏览器闪退
零、查看Python的安装路径
一、Chromedriver放置的位置
背景:之前由于Chrome浏览器自动升级后,导致驱动与浏览器不匹配,自己也不知道问题出在哪儿,花费了我大量时间去排查,所以接下来记录一些。
使用的是selenium v 4.1.0版本
下载的Chromedriver要与浏览器的版本一样。
1、原始的常规放置的位置:
放置的位置和Python执行的文件位置要一样,这样才能够使用最新的驱动。
注意:在selenium v4.4.0以上的版本,可以不用把浏览器的驱动放在跟Python执行程序一起。
但是需要用一段代码去说明,调用函数。
2、浏览器的驱动与Python启动程序不在一个目录:
方法一:(注意这种目前在selenium v4.1.0之前的版本都可以,但是在4.4.0以后的版本不行,中间的版本还没有试过)
那么就要在代码中设置浏览器驱动的地址
# 加载谷歌浏览器驱动
driver = webdriver.Chrome(r’…\chromedriver.exe’) # 这个里面直接传入驱动的路径
方法二:使用内置的Service类(这个类是专门处理浏览器驱动的问题)
二、浏览器闪退
在解决完第一个问题后,我们会发现在执行代码后selenium打开完浏览器后会直接闪退。这确实是正常现象,因为你安装的是最新的selenium4版本,他对浏览器执行完操作后会自动关闭浏览器
from selenium.webdriver.chrome.service import Servicefrom selenium import webdriverimport time # url地址url = 'http://www.baidu.com' # 定义chrome驱动去地址path =Service('chromedriver.exe') # 创建浏览器操作对象browser = webdriver.Chrome(service=path) # 这里我们给哥time等待,假设我们在这段时间内进行的操作time.sleep(3) # 获取前端页面browser.get(url)#输出前端代码中的title字段内容print(browser.title)
这时就看起来正常点了
其实遇到上面的报错只是看着不舒服,代码还是能跑的。
网上其他博主的解释:
1、经过排查发现,之前电脑的selenium版本是4.1.1,运行不会自动退出;升级到selenium最新版本4.7.2后,会出现这个问题。
于是将selenium版本回退到4.1.1,成功解决。
2、浏览器与浏览器的驱动版本不匹配。
有个解决方式不知道行不行(先记录):
当使用Selenium WebDriver 加载页面时出现浏览器闪退时,如何解决? – 小智博客
对应浏览器闪退的问题,博主的链接:
python运行selenium时浏览器闪退情况:_selenium 浏览器自动退出_颓废猫的博客-CSDN博客python运行selenium时浏览器闪退问题:**出现原因:**代码如果没问题的话,那就是谷歌浏览器自动更新升级了,Chrome驱动文件版本低了,**解决办法:**重新查看自己浏览器的版本,下载对应的驱动文件。浏览器驱动下载地址:https://npm.taobao.org/mirrors/c…https://blog.csdn.net/weixin_45466049/article/details/105787687″ />chrome更新后,再次使用selenium打开chrome却发现闪退了?全网最详细教程,肯定能帮到你!_chromedrvier 闪退报错_此杭非彼航的博客-CSDN博客文章目录问题描述解决方案问题描述我的chrome一直提示我要更新,我嫌它一直提示很烦人,就更新了。不更新不要紧,更新后我发现我的selenium打开chrome时开始闪退,这是之前没有的情况,我估计肯定是和版本有关解决方案首先,和网上大多数教程说的一样,我们要去下载一个和chrome版本对应的chromedriver…https://blog.csdn.net/ljhsq/article/details/117201292″ />selenium 程序执行完之后,闪退的解决方法_selenium闪退_Candy1120628的博客-CSDN博客情况1:chrome浏览器不会自动关闭from selenium import webdriverdr=webdriver.Chrome()dr.get(‘http://xxxxxxxx’)情况2:chrome浏览器会自动关闭from selenium import webdriverdef driver():dr=webdriver.Chrome()dr.get(‘http://xxxxxxxx’)if __name__ == ‘__main__’:drivehttps://blog.csdn.net/u012620887/article/details/107536170″ />解决selenium打开浏览器自动退出_selenium打开浏览器闪退_AutomationT的博客-CSDN博客
分析解释selenium:DeprecationWarning: executable_path has been deprecated, please pass in 和打开浏览器闪退问题_IT.cat的博客-CSDN博客
总结:
后续继续补充其他