Pytest+Selenium入门:从零开始直接实战写自动化测试 刚开始学自动化测试的时候我就发现很多教程一上来就是大量前置概念讲解不少同学刷了十节课下来还是连完整的脚本都跑不起来。其实对入门来说动手实践才是最高效的学习方式。这篇文章就跳过冗余的理论铺垫直接带你上手写代码适合有一点代码基础、想在实战中边做边学的同学。以下贴出了用到的工具需要全部配置成功再学习。搭完第一个百度新闻搜索的小项目把项目里每个目录文件的作用、驱动下载的方法和新手最容易踩的坑都整理了一遍纯小白视角的学习笔记帮同样刚入门的小伙伴少走弯路。项目代码贴在最后了。用到的工具总览按作用分为 4 大类是 Web UI 自动化测试的标准技术栈运行基础Python 3.14所有测试代码的编写与运行环境提供基础语法和标准库支撑第三方测试工具运行。测试框架pytest自动化测试的执行与管理工具自动识别test_开头的测试用例执行测试并输出通过 / 失败结果是自动化测试的核心管理框架。自动化核心Selenium ChromeDriver Chrome 浏览器SeleniumWeb 自动化核心库提供元素定位、输入、点击、页面跳转等全套浏览器操作 API。ChromeDriverChrome 官方驱动充当代码与浏览器之间的通信桥梁把代码指令转为浏览器的实际操作。Chrome 浏览器自动化测试的执行载体也就是被控制、被测试的目标浏览器。开发工具VS Code代码编辑器配合 Python 插件提供代码补全、语法检查、自动格式化、内置终端等能力用于编写和调试测试脚本。补充过程中接触过webdriver-manager驱动自动管理工具因网络限制最终改用本地手动放置驱动的方案。一、项目根目录文件说明给大家拆解一下项目里每个文件和文件夹都是干嘛的刚接触的时候不用死记知道作用就行PY项目根目录你创建的项目文件夹所有代码和依赖文件都放在这里面。.pytest_cachepytest 自动生成的测试缓存目录保存历史运行记录以加快后续执行速度可随意删除不影响代码功能。.vscode/settings.jsonVS Code 的项目专属配置文件存放 pytest 框架启用、代码自动格式化、终端中文编码等项目级规则。__pycache__Python 自动生成的字节码缓存目录存放编译后的 .pyc 文件以加快脚本启动速度可随意删除。test_baidu_news_search.py核心测试脚本文件存放百度新闻搜索的测试用例代码是 pytest 执行测试的核心业务文件。chromedriver.exeChrome 浏览器驱动程序是 Selenium 代码与浏览器之间的通信桥梁版本需与 Chrome 浏览器大版本匹配。下载后将 chromedriver.exe 放在项目文件夹下。二、ChromeDriver 手动配置与国内下载地址我这里用的是手动配置浏览器驱动的方式主要是避免自动匹配驱动时因为网速问题导致运行失败更稳定可控。手动配置的核心要求就是chromedriver.exe 文件版本必须和自己的 Chrome 浏览器版本匹配。用其他浏览器也是一样的需要找到相关驱动给大家整理了国内高速镜像地址下载比官网快很多按自己的浏览器版本选对应的入口新版驱动Chrome 115.0.5763.0 及以上版本Chrome 115 之后官方更换了驱动仓库所有高版本驱动都在这里CNPM Binaries Mirror旧版驱动Chrome 114 及更低版本仅当使用老版本 Chrome 时用这个地址CNPM Binaries Mirror三、测试脚本完整执行流程给大家梳理一下这个百度新闻搜索脚本的完整执行逻辑新手可以对着代码一步步对应理解每一步在做什么初始化驱动 → 配置浏览器 → 打开百度新闻 → 定位搜索框 → 输入关键词 → 回车搜索 → 等待页面加载 → 验证结果 → 关闭浏览器四、新手高频踩坑提醒这个是我自己踩了好多次的坑一定要记牢改完代码一定要按CtrlS保存否则运行的还是旧代码会一直报同样的错排查半天找不到原因。保存文件后在终端执行以下命令即可运行测试python -m pytest tests/test_baidu_news_search.py -ssettings.json{ python-envs.defaultEnvManager: ms-python.python:system, // 开启 pytestunittest 双兼容 python.testing.pytestEnabled: true, python.testing.unittestEnabled: false, // 执行用例自动生成 html 报告 python.testing.pytestArgs: [ . ], // Windows 终端中文不乱码 terminal.integrated.env.windows: { PYTHONIOENCODING: utf-8 }, // yaml 文件保存自动格式化 [yaml]: { editor.formatOnSave: true }, // Python 代码保存自动格式化、整理导入包 editor.formatOnSave: true, editor.codeActionsOnSave: { source.organizeImports: explicit }, // 代码自动补全、类型检查 python.analysis.autoImportCompletions: true, python.analysis.typeCheckingMode: basic }test_baidu_news_search.pyfrom selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys # 导入键盘按键工具 from selenium.webdriver.chrome.service import Service import time def test_baidu_news_search(): # 调用本地驱动 service Service(executable_pathrE:\py\chromedriver.exe) driver webdriver.Chrome(serviceservice) driver.implicitly_wait(15) driver.maximize_window() # 打开百度新闻 driver.get(https://news.baidu.com) # 定位搜索框输入关键词 search_input driver.find_element(By.ID, ww) search_input.send_keys(自动化测试) # 按回车键提交搜索替代 submit兼容所有网站的搜索框 search_input.send_keys(Keys.ENTER) # 等待页面跳转加载 time.sleep(2) # 断言验证搜索结果 assert 自动化测试 in driver.title, 搜索失败页面标题不包含关键词 time.sleep(2) driver.quit()---以上就是这次入门学习的全部整理内容后续会继续更新自动化测试学习过程中的笔记和踩坑记录一起进步