【selenium】问题记录

文章描述了一个在使用Selenium自动化测试时遇到的问题,即Chrome浏览器版本114与ChromeDriver版本106不一致,导致SessionNotCreatedException错误。作者尝试使用webdriver-manager来自动下载匹配的驱动,但未成功。最终的解决方案是手动下载与Chrome版本114相匹配的ChromeDriver,替换掉旧版本,并确保其在系统路径中可用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、驱动和浏览器版本不一致
报错:selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 106
在这里插入图片描述
问题原因:
chrome版本114,Chromedriver版本106

解决方案:

  1. 安装 webdriver-manager ,使用浏览器驱动管理器模块自动识别并下载驱动。

在这里插入图片描述

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
wd = webdriver.Chrome(ChromeDriverManager().install())

但我用这种方法没解决。

  1. 安装对应浏览器版本的chromedriver,地址:https://chromedriver.storage.googleapis.com/index.html
    在/usr/local/bin中删除已有chromedirver文件(bash文件中已经配置了chromedriver环境变量path),把新下载好的zip文件mv到/usr/local/bin中,并用unzip命令解压
    然后执行chromedriver --version即可解决问题
### 使用 Selenium 管理浏览器历史记录 #### 后退和前进操作 为了实现浏览器的后退和前进功能,在 Selenium 4 中提供了 `navigate().back()` 和 `navigate().forward()` 方法。这些方法可以用来模拟用户的实际导航行为,从而更好地测试网页应用的行为[^1]。 ```python from selenium import webdriver driver = webdriver.Chrome() driver.get('http://example.com') # 访问另一个页面 driver.get('http://another-example.com') # 执行回退到上一页面的操作 driver.navigate().back() # 前进回到刚才离开的那个页面 driver.navigate().forward() ``` #### 清除浏览数据 当需要在一个全新的环境中执行测试时,则可以通过特定的方法清除浏览器缓存和其他存储的数据。对于 Java 用户来说,可以在每次启动 WebDriver 实例前设置选项来达到这一目的;而对于 Python 用户而言,也可以利用类似的配置方式完成相同的目标[^4]。 Python 示例: ```python from selenium.webdriver.chrome.options import Options as ChromeOptions chrome_options = ChromeOptions() chrome_options.add_argument("--disable-cache") driver = webdriver.Chrome(options=chrome_options) ``` Java 示例: ```java ChromeOptions options = new ChromeOptions(); options.setExperimentalOption("excludeSwitches", Collections.singletonList("enable-automation")); DesiredCapabilities capabilities = DesiredCapabilities.chrome(); capabilities.setCapability(ChromeOptions.CAPABILITY, options); WebDriver driver = new ChromeDriver(capabilities); // 或者使用更简单的清理命令 ((JavascriptExecutor) driver).executeScript("window.sessionStorage.clear();"); ((JavascriptExecutor) driver).executeScript("window.localStorage.clear();"); ``` #### 调用本地浏览器并管理其历史记录 如果希望基于已安装于计算机上的真实浏览器实例来进行测试,并对其进行更加细致化的控制(比如访问真实的浏览历史),那么可以根据实际情况调整 WebDriver 的初始化参数以加载默认概要文件或其他自定义设定[^3]。 ```python from selenium.webdriver.firefox.options import Options as FirefoxOptions firefox_profile_path = r'C:\Users\YourUsername\AppData\Roaming\Mozilla\Firefox\Profiles\xxxxxxxx.default' firefox_options = FirefoxOptions() firefox_options.add_argument('-profile') firefox_options.add_argument(firefox_profile_path) driver = webdriver.Firefox(options=firefox_options) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值