selenium自动化“ChromeDriver”和浏览器版本不同解决办法

“selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 97
Current browser version is 96.0.4664.45 with binary path C:\Program Files (x86)\Google\Chrome\Application\chrome.exe”

python使用selenium自动化操作浏览器时,报以上错误,即为“ChromeDriver”和浏览器版本不对应问题,解决办法有如下两种,
1.手动下载ChromeDriver并引用(chrome更新后需要重新下载对应版本的ChromeDriver)。
2.导入对应包,让程序自动去下载对应的ChromeDriver,此方法可以解决chrome自动更新后,需要手动下载ChromeDriver的步骤

一、手动下载对应版本的ChromeDriver,并进行引用

1.查看本机chrome浏览器版本

打开chrome浏览器,右上角三个点点里面找到设置
在这里插入图片描述
在这里插入图片描述查看版本:96.0.4664.45
2.去下载对应版本的ChromeDriver
----获取新版chromedriver地址:https://googlechromelabs.github.io/chrome-for-testing/—
链接地址:http://chromedriver.storage.googleapis.com/index.html
找到对应自己chrome浏览器版本的文件在这里插入图片描述
点击进入,下载对应自己操作系统的文件压缩包64位下载win32就可以在这里插入图片描述
3.解压下载好的安装包之后有两种方式可以让程序找到ChromeDriver驱动并使用它:分为3.1和3.2
3.1将文件夹中的.exe文件放在python文件夹下,该方法需要移动驱动程序文件位置,稍微麻烦一些,且后期更新ChromeDriver后还需要重复该步骤,不如3.2方便

压缩包在这里插入图片描述

解压后文件夹内只有一个.exe文件
在这里插入图片描述
将该.exe文件放在包含python.exe的python文件夹下
在这里插入图片描述
3.2 在代码中设置ChromeDriver的路径,就可以将ChromeDriver文件放在任意位置了
旧版selenium可以使用以下语句直接指定chromedriver.exe文件的位置

from selenium import webdriver

driver = webdriver.Chrome(executable_path='D:\\python3.7.7\\chromedriver_win32\\chromedriver.exe')
driver.get('https://www.baidu.com')

新版selenium废除了上述方式(可以使用但会报),可以使用以下方式,需要引入Service包

from selenium import webdriver
from selenium.webdriver.chrome.service import Service

service = Service(executable_path='D:\\python3.7.7\\chromedriver_win32\\chromedriver.exe')
driver = webdriver.Chrome(service=service)
driver.get('https://www.baidu.com')

经过3.1或3.2的设置后就可以正常运行代码了,不会再报版本不对应的错误

二、通过导入‘ChromeDriverManager’包,自动加载对应版本的"ChromeDriver"

第一种方式在chrome更新后需要重新手动下载对应版本的ChromeDriver,较为麻烦。如果使用导入ChromeDriverManager的方式可以让程序在运行前自动检查是否存在和chrome版本对应的ChromeDriver,不存在或版本不对应的情况下,程序会自动下载

接下来就是该方式的流程:
首先安装‘webdriver-manager’包

pip install webdriver-manager

在这里插入图片描述
然后就是导包了:

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get('https://www.baidu.com')

运行上述代码后,如果你的电脑ChromeDriver版本不正确,会先下载对应版本,然后再打开浏览器
在这里插入图片描述
这里有文件的保存地址,会默认保存在‘[C:\Users\admin\.wdm\drivers\chromedriver\win32\100.0.4896.60]’,我没找到是否可以更换保存地址,~~~~~如果你知道的话,可以评论下,谢谢
以上设置之后就可以使用selenium自动化访问了
eg:

from selenium import webdriver
chrome = webdriver.Chrome()
注释:若放在python文件夹内可以直接使用chrome = webdriver.Chrome(),若放在其他路径只需要将chromedriver.exe的路径放在括号里面chrome = webdriver.Chrome(‘D:\software\chromedriver.exe’)同样可以运行
chrome=webdriver.Chrome()
url = “http://www.baidu.com”
chrome.get(url)
chrome.find_element_by_id(“kw”).send_keys(“python”)
chrome.find_element_by_id(“su”).click()
该代码可以打开百度,输入python,并点击"百度一下"进行搜索

  • 24
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 20
    评论
### 回答1: 以下是seleniumchromedriverchrome版本映射表: | chromedriver版本 | 支持的Chrome版本 | | ---------------- | ---------------- | | v2.46 | v71-73 | | v2.45 | v70-72 | | v2.44 | v69-71 | | v2.43 | v69-71 | | v2.42 | v68-70 | | v2.41 | v67-69 | | v2.40 | v66-68 | | v2.39 | v66-68 | | v2.38 | v65-67 | | v2.37 | v64-66 | | v2.36 | v63-65 | | v2.35 | v62-64 | | v2.34 | v61-63 | | v2.33 | v60-62 | | v2.32 | v59-61 | | v2.31 | v58-60 | | v2.30 | v58-60 | | v2.29 | v56-58 | | v2.28 | v55-57 | | v2.27 | v54-56 | | v2.26 | v53-55 | | v2.25 | v53-55 | | v2.24 | v52-54 | | v2.23 | v51-53 | | v2.22 | v49-52 | | v2.21 | v46-50 | | v2.20 | v43-48 | | v2.19 | v43-47 | | v2.18 | v43-46 | | v2.17 | v42-43 | | v2.13 | v42 | 注意:以上版本仅供参考,具体版本兼容性请参考selenium官方文档。 ### 回答2: selenium是一个自动化测试工具,可以用于测试网站的功能和兼容性。而chromedriver则是selenium中用于控制和操作Chrome浏览器的驱动程序。 chromedriverchrome浏览器版本是有一定的对应关系的,不同版本chromedriver适用于不同版本chrome浏览器。具体的版本映射表如下: - chromedriver v2.46适用于Chrome v71-73。 - chromedriver v74适用于Chrome v74-76。 - chromedriver v75适用于Chrome v75-77。 - chromedriver v76适用于Chrome v76-78。 - chromedriver v77适用于Chrome v77-79。 - chromedriver v78适用于Chrome v78-80。 - chromedriver v79适用于Chrome v79-81。 - chromedriver v80适用于Chrome v80-83。 - chromedriver v81适用于Chrome v81-83。 - chromedriver v83适用于Chrome v83-85。 - chromedriver v84适用于Chrome v84-85。 - chromedriver v85适用于Chrome v85-87。 需要注意的是,这只是其中的一部分版本映射表,因为seleniumchrome都会不断更新,所以版本对应关系可能会有所变动。所以,在使用seleniumchromedriver时,需要根据使用的具体版本来选择合适的chromedriver。为了确保兼容性和稳定性,建议先查看selenium官方文档或者chromedriver官方文档,或者在开发者社区中寻找最新的版本映射信息。 ### 回答3: selenium是一种用于自动化测试的工具,它可以模拟用户在浏览器上的操作,进行网页内容的抓取和功能的测试。 在使用selenium进行自动化测试时,需要下载对应的浏览器驱动程序,比如Chrome浏览器需要使用chromedriverchromedriver是一个连接Chrome浏览器selenium的桥梁,它通过与Chrome进行通信来控制浏览器的行为。不同版本Chrome浏览器对应不同版本chromedriver,所以在使用selenium时需要注意浏览器和驱动的版本兼容性。 以下是常见的Chrome浏览器版本chromedriver版本映射表: Chrome版本 对应chromedriver版本 Chrome v88 chromedriver v88 Chrome v87 chromedriver v87 Chrome v86 chromedriver v86 Chrome v85 chromedriver v85 Chrome v84 chromedriver v84 需要注意的是,Chrome浏览器会经常更新版本,所以推荐在使用selenium时使用最新版本Chrome浏览器chromedriver,以确保兼容性和性能。可以通过官方网站或者开发者社区获取最新的chromedriver版本,并按照说明进行下载和配置。 总之,使用selenium的时候需要根据自己使用的Chrome浏览器版本选择对应的chromedriver版本,以确保正常的自动化测试操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值