Selenium数据驱动测试:解决xlrd读取Excel文件兼容性问题

云舒
云舒
发布时间:2026-10-14| 4人浏览过
原创

本文介绍在Selenium数据驱动测试中使用xlrd库读取Excel文件的常见报错及解决方案。针对xlrd 2.0.1版本仅支持.xls格式的问题,提供了使用旧版库或转换文件格式两种解决方法,并附带完整的Python测试脚本示例。

安装xlrd库

首先,需要通过pip3命令安装xlrd库,执行命令:pip3 install xlrd。

Selenium读取Excel脚本示例

接下来展示一个具体的测试脚本示例,用于演示如何读取Excel数据。


​import pytest 
import xlrd 
def get_data():
    filename="F:\\学习\\自动化测试\\selenium自动化测试\\selenium_test\\data\\test.xls" 
    # 读取工作簿 
    wb=xlrd.open_workbook(filename) 
    # 读取第一个sheet页
    sheet=wb.sheet_by_index(0) 
    # 读取行 
    rows=sheet.nrows 
    # 读取列
    cols=sheet.ncols 
    lst=[] 
    for row in range(rows):
        for col in range(cols):
            #根据行列获得单元格数据
            cell_data=sheet.cell_value(row,col)
            lst.append(cell_data)
    return lst
@pytest.mark.parametrize('name',get_data()) 
def test1(name): 
    print(name) 
if __name__ == '__main__':
        pytest.main(['-sv','test.xls'])
 
​

运行上述脚本后,预期输出结果如下所示。

常见问题与解决方案

在实际操作中,可能会遇到运行测试脚本时抛出错误的常见问题。

经排查,错误原因在于近期xlrd库已更新至2.0.1版本,该版本仅支持.xls格式的Excel文件,不再兼容.xlsx。

针对上述兼容性问题,可以采取以下解决方法。

方法一:在测试脚本中直接使用.xls格式的Excel文件进行读取。

方法二:如果必须使用.xlsx文件或希望保持库的版本更新,可以回退安装旧版本的xlrd。具体操作是在命令行(cmd)中执行以下卸载和安装命令。

首先卸载当前版本的xlrd,命令为:pip3 uninstall xlrd。

随后安装指定版本的xlrd,命令为:pip3 install xlrd==1.2.0。

本内容整理自极客时间课程中关于Selenium自动化测试的学习总结。

以上是关于Selenium数据驱动测试中读取Excel文件的详细指南,更多相关技术文章请持续关注本站更新。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。