Python之selenium关于Chrome驱动位置,闪退的问题和安装路径

目录

  • 零、查看Python的安装路径
  • 一、Chromedriver放置的位置
  • 二、浏览器闪退

零、查看Python的安装路径

Python之selenium关于Chrome驱动位置,闪退的问题和安装路径_第1张图片

 

一、Chromedriver放置的位置

背景:之前由于Chrome浏览器自动升级后,导致驱动与浏览器不匹配,自己也不知道问题出在哪儿,花费了我大量时间去排查,所以接下来记录一些。

使用的是selenium v 4.1.0版本

下载的Chromedriver要与浏览器的版本一样。

1、原始的常规放置的位置:

放置的位置和Python执行的文件位置要一样,这样才能够使用最新的驱动。

Python之selenium关于Chrome驱动位置,闪退的问题和安装路径_第2张图片

注意:在selenium v4.4.0以上的版本,可以不用把浏览器的驱动放在跟Python执行程序一起。

但是需要用一段代码去说明,调用函数。

2、浏览器的驱动与Python启动程序不在一个目录:

方法一:(注意这种目前在selenium v4.1.0之前的版本都可以,但是在4.4.0以后的版本不行,中间的版本还没有试过)

那么就要在代码中设置浏览器驱动的地址

  1. # 加载谷歌浏览器驱动

  2. driver = webdriver.Chrome(r'...\chromedriver.exe')  # 这个里面直接传入驱动的路径

方法二:使用内置的Service类(这个类是专门处理浏览器驱动的问题)

Python之selenium关于Chrome驱动位置,闪退的问题和安装路径_第3张图片

Python之selenium关于Chrome驱动位置,闪退的问题和安装路径_第4张图片

二、浏览器闪退

在解决完第一个问题后,我们会发现在执行代码后selenium打开完浏览器后会直接闪退。这确实是正常现象,因为你安装的是最新的selenium4版本,他对浏览器执行完操作后会自动关闭浏览器

from selenium.webdriver.chrome.service import Service
from selenium import webdriver
import 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?ops_request_misc=&request_id=&biz_id=102&utm_term=selenium%E9%97%AA%E9%80%80&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-105787687.142%5Ev7%5Epc_search_result_control_group,157%5Ev4%5Econtrol&spm=1018.2226.3001.4187


chrome更新后,再次使用selenium打开chrome却发现闪退了?全网最详细教程,肯定能帮到你!_chromedrvier 闪退报错_此杭非彼航的博客-CSDN博客文章目录问题描述解决方案问题描述我的chrome一直提示我要更新,我嫌它一直提示很烦人,就更新了。不更新不要紧,更新后我发现我的selenium打开chrome时开始闪退,这是之前没有的情况,我估计肯定是和版本有关解决方案首先,和网上大多数教程说的一样,我们要去下载一个和chrome版本对应的chromedriver...https://blog.csdn.net/ljhsq/article/details/117201292?ops_request_misc=&request_id=&biz_id=102&utm_term=selenium%E9%97%AA%E9%80%80&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-6-117201292.142%5Ev7%5Epc_search_result_control_group,157%5Ev4%5Econtrol&spm=1018.2226.3001.4187

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?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164983411316780271573710%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=164983411316780271573710&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-107536170.142%5Ev7%5Epc_search_result_control_group,157%5Ev4%5Econtrol&utm_term=selenium%E9%97%AA%E9%80%80&spm=1018.2226.3001.4187

参考优秀的博主:

解决selenium打开浏览器自动退出_selenium打开浏览器闪退_AutomationT的博客-CSDN博客

分析解释selenium:DeprecationWarning: executable_path has been deprecated, please pass in 和打开浏览器闪退问题_IT.cat的博客-CSDN博客


总结:

后续继续补充其他

你可能感兴趣的:(selenium知识,python,开发语言)