pytest-selenium:给 pytest 装上浏览器自动化引擎
pytest-selenium:给 pytest 装上浏览器自动化引擎
pytest-selenium 是 pytest 的一个插件,为基于 Selenium 的自动化测试提供支持。该项目目前已获得 353 个 Star。

这个插件的核心作用是把 Selenium 的浏览器操作能力整合进 pytest 的测试框架。对于需要验证 Web 应用功能的团队来说,这意味着可以用熟悉的 pytest 语法来编写浏览器自动化测试,而不需要额外学习一套独立的测试工具。

pytest-selenium 提供了多项实用功能。它支持多种浏览器驱动,包括 Chrome、Firefox、Edge 等主流浏览器。插件内置了测试夹具,可以自动管理浏览器的启动和关闭,减少测试代码中的重复设置。同时,它集成了 Selenium 的远程 WebDriver 支持,能够对接 Selenium Grid 进行分布式测试。
在报告输出方面,这个插件可以捕获测试失败时的页面截图和 HTML 源码,方便定位问题。当自动化测试在生产环境中失败时,这些上下文信息能大幅缩短排查时间。
测试编写上,pytest-selenium 保持了 pytest 一贯的简洁风格。开发者只需在测试函数的参数列表中加入 selenium 这个夹具,就可以在测试方法中直接调用浏览器实例。这种设计让测试代码更聚焦在业务逻辑上,而不是环境配置上。
安装过程很简单,通过 pip 就可以完成:
pip install pytest-selenium
安装完成后,需要在系统中配置对应的浏览器驱动。以 Chrome 为例,需要下载与浏览器版本匹配的 ChromeDriver,并确保其在系统 PATH 中可用。
基本的使用方式如下。编写测试文件时,引入 selenium 夹具:
def test_google(selenium):
selenium.get("https://www.google.com")
assert selenium.title == "Google"
然后在命令行中指定浏览器类型运行测试:
pytest --driver Chrome
如果需要使用远程的 Selenium Grid,可以通过参数指定 hub 地址:
pytest --driver Remote --selenium-host 192.168.1.100 --selenium-port 4444
这个插件还提供了一些实用的命令行选项。--base-url 参数可以设置测试的基础地址,所有相对路径的请求都会自动拼接这个前缀。--html 参数可以生成 HTML 格式的测试报告,其中会包含失败用例的截图。
对于持续集成环境,pytest-selenium 支持无头模式运行。加上 --headless 参数后,浏览器不会弹出可视窗口,适合在服务器或 CI 流水线中执行测试。
该项目的文档托管在 Read the Docs 上,覆盖了完整的配置选项和用法示例。代码采用 MPL 2.0 协议开源,允许在商用项目中自由使用。
总体来看,pytest-selenium 解决了一个具体的工程问题:如何在 pytest 生态中顺畅地运行浏览器自动化测试。它不做多余的事情,只是做好插件该做的事,把 Selenium 的能力以一种低摩擦的方式接入 pytest。对于已经使用 pytest 作为测试框架的团队,这个插件可以省去大量集成工作。
方式接入 pytest。对于已经使用 pytest 作为测试框架的团队,这个插件可以省去大量集成工作。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)