当前位置: 首页 > article >正文

Python3 Selenium 自动化测试从入门到实战开发流程

本章学习目标帮助零基础 / 初级测试工程师快速掌握 Python3Selenium 自动化测试从环境搭建到项目实战全覆盖可直接用于接口 / UI 自动化工作落地。一、引言为什么 Selenium 自动化测试如此重要在软件迭代加速、回归频繁的今天Python3Selenium UI 自动化测试已成为测试工程师必备核心技能能大幅降低重复劳动、提升测试覆盖率与发布效率。1.1 背景与意义核心认知Selenium 是 Web 自动化事实标准搭配 Python 简洁语法可快速实现浏览器模拟、元素操作、断言验证、报告生成。手工测试重复度高、易出错、回归慢自动化可 7×24 小时执行支持多浏览器 / 多平台行业主流互联网 / 金融 / 企业级项目普遍采用 Selenium 栈1.2 本章结构概览plaintext环境搭建 → 核心API → 元素定位 → 常用操作 → 实战项目 → 最佳实践 → 总结展望二、核心概念解析2.1 基本定义概念一Selenium 核心组件表格组件说明作用Selenium WebDriver核心驱动控制浏览器执行操作Selenium IDE录制工具快速生成脚本入门用Selenium Grid分布式多机器 / 多浏览器并行执行概念二Python3Selenium 优势语法简洁入门快丰富第三方库unittest/pytest/allure跨浏览器Chrome/Firefox/Edge跨平台Windows/Mac/Linux2.2 关键术语解释⚠️基础术语元素定位找到页面按钮 / 输入框 / 链接的方式显式等待等待元素满足条件再执行避免报错隐式等待全局等待元素加载断言判断结果是否符合预期验证用例2.3 技术架构概览plaintext┌─────────────────────────────────────────┐ │ 用例层 (Test Case) │ unittest/pytest 测试用例、断言 ├─────────────────────────────────────────┤ │ 驱动层 (WebDriver) │ ChromeDriver/GeckoDriver 浏览器驱动 ├─────────────────────────────────────────┤ │ 操作层 (Action) │ 点击、输入、切换、截图、获取文本 ├─────────────────────────────────────────┤ │ 报告层 (Report) │ Allure/HTMLTestRunner 测试报告 └─────────────────────────────────────────┘三、技术原理深入3.1 核心技术原理技术一环境一键搭建python运行# 1. 安装Selenium库 pip install selenium4.15.0 # 2. 安装浏览器驱动管理库 pip install webdriver-manager技术二最简启动示例python运行from selenium import webdriver from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager import time # 自动安装并启动Chrome driver webdriver.Chrome(serviceService(ChromeDriverManager().install())) # 打开网页 driver.get(https://www.baidu.com) # 窗口最大化 driver.maximize_window() # 等待2秒 time.sleep(2) # 关闭浏览器 driver.quit()技术三元素定位Selenium4 推荐写法python运行from selenium.webdriver.common.by import By # 常用定位方式 driver.find_element(By.ID, kw) # ID driver.find_element(By.NAME, wd) # Name driver.find_element(By.CLASS_NAME, s_ipt) # Class driver.find_element(By.XPATH, //input[idkw]) # XPath driver.find_element(By.CSS_SELECTOR, #kw) # CSS driver.find_element(By.LINK_TEXT, 新闻) # 链接文本3.2 数据交互机制标准自动化流程plaintext打开浏览器 → 进入页面 → 定位元素 → 执行操作 → 断言结果 → 生成报告 → 关闭浏览器完整交互封装python运行class BasePage: def __init__(self, driver): self.driver driver # 打开页面 def open_url(self, url): self.driver.get(url) # 输入内容 def input_text(self, locator, text): ele self.driver.find_element(*locator) ele.clear() ele.send_keys(text) # 点击元素 def click_ele(self, locator): self.driver.find_element(*locator).click() # 获取文本 def get_text(self, locator): return self.driver.find_element(*locator).text3.3 等待与异常处理python运行from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # 显式等待最多10秒直到元素可点击 wait WebDriverWait(driver, 10) wait.until(EC.element_to_be_clickable((By.ID, su)))四、实践应用指南4.1 应用场景分析✅核心场景登录自动化账号密码输入、验证登录状态表单自动化输入、下拉、单选、复选、提交搜索自动化关键词输入、结果校验流程自动化下单、支付、退款、订单查询回归测试版本更新自动执行用例4.2 实施步骤详解步骤 1需求分析测试页面 / 功能点确定用例步骤与预期结果确定元素定位方案步骤 2技术选型plaintext- 语言Python 3.8 - 框架Selenium 4.x pytest - 驱动webdriver-manager 自动管理 - 报告Allure 2.0 - 设计模式Page Object Model (POM)步骤 3开发实现表格任务内容时长环境搭建PythonSelenium 驱动0.5 天基础语法定位 / 操作 / 等待 / 断言1 天POM 封装基类 页面类 用例类2 天项目实战完整业务流程自动化2 天调试优化报错处理、稳定性提升1 天4.3 最佳实践分享最佳实践一PO 模式页面元素与用例分离便于维护减少重复代码适合多人协作最佳实践二等待优先禁用time.sleep()硬等待优先用显式等待避免因加载慢导致用例失败五、案例分析5.1 成功案例百度搜索自动化实战背景实现打开百度→输入关键词→点击搜索→校验结果完整代码python运行import pytest from selenium import webdriver from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC class TestBaiduSearch: def setup_class(self): self.driver webdriver.Chrome(serviceService(ChromeDriverManager().install())) self.driver.maximize_window() self.driver.implicitly_wait(10) def test_baidu_search(self): # 打开百度 self.driver.get(https://www.baidu.com) # 输入Selenium wait WebDriverWait(self.driver, 10) input_ele wait.until(EC.presence_of_element_located((By.ID, kw))) input_ele.send_keys(Selenium自动化测试) # 点击搜索 self.driver.find_element(By.ID, su).click() # 断言标题包含关键词 assert Selenium自动化测试 in self.driver.title def teardown_class(self): self.driver.quit() if __name__ __main__: pytest.main([-v, test_baidu.py])实施效果表格指标手工自动化单次执行时间60 秒10 秒回归覆盖率60%95%人力成本高低稳定性易出错稳定可靠5.2 失败教训❌常见踩坑直接用time.sleep(2)网络波动就失败不做等待元素未加载就操作用例无断言执行通过但功能错误不关闭浏览器资源泄漏解决方案统一用显式等待每条用例必须加断言用setup/teardown管理浏览器生命周期加入异常捕获与截图六、常见问题解答6.1 技术问题Q1浏览器驱动版本不匹配 用webdriver-manager自动管理无需手动下载。Q2元素定位不到检查是否在 iframe 中检查是否动态 ID/Class改用 XPath/CSS 稳定定位增加等待时间Q3用例不稳定、偶尔失败去掉time.sleep用显式等待避免用绝对 XPath用 PO 模式降低耦合6.2 应用问题Q4如何生成美观测试报告bash运行# 安装 pip install allure-pytest # 执行用例并生成数据 pytest --alluredir./report # 启动报告服务 allure serve ./reportQ5如何实现无头模式不打开浏览器python运行from selenium.webdriver.chrome.options import Options options Options() options.add_argument(--headlessnew) # 无头模式 driver webdriver.Chrome(optionsoptions)七、未来发展趋势7.1 技术趋势表格趋势说明时间AI 自动化AI 自动生成定位与用例1-2 年云原生执行云端分布式并行测试已普及Cypress 替代前端轻量化自动化崛起2-3 年低代码平台可视化生成自动化用例进行中7.2 职业发展表格阶段学习重点时长入门环境 语法 基础用例1 个月进阶POM 数据驱动 报告2 个月专业接口 UI 一体化自动化3-6 个月专家平台化、持续集成 CI/CD6-12 个月八、本章小结8.1 核心要点回顾✅ 本章完整覆盖环境搭建PythonSelenium 一键配置核心 API定位、操作、等待、断言设计模式PO 模式最佳实践实战案例可直接落地的搜索自动化问题排查常见报错与稳定化方案职业路径从入门到自动化专家8.2 学习建议先跑通示例再理解原理每天写 1 个用例快速形成肌肉记忆用 PO 重构代码养成工程化思维结合项目实战学以致用最有效九、课后练习基础练习实现 CSDN 登录自动化脚本实战练习用 PO 模式封装一个登录页面综合练习完成 “登录→搜索→断言” 完整流程报告练习用 Allure 生成可视化测试报告十、参考资料Selenium 官方文档https://www.selenium.dev/documentation/Python 官方文档https://docs.python.org/3/pytest 文档https://docs.pytest.org/Allure 报告https://docs.qameta.io/allure/

相关文章:

Python3 Selenium 自动化测试从入门到实战开发流程

📝 本章学习目标:帮助零基础 / 初级测试工程师快速掌握 Python3Selenium 自动化测试,从环境搭建到项目实战全覆盖,可直接用于接口 / UI 自动化工作落地。 一、引言:为什么 Selenium 自动化测试如此重要 在软件迭代加速…...

VisionPro坐标空间树实战:从概念到精准测量的空间转换指南

1. VisionPro坐标空间树的核心概念 第一次接触VisionPro的坐标空间树时,我也被那些专业术语搞得晕头转向。但经过几个项目的实战后,我发现这套系统其实设计得非常巧妙。简单来说,坐标空间树就像是一个多层级的地址系统,它能告诉你…...

海康VisionMaster从安装到跑通,我踩过的那些坑(附详细排查清单)

海康VisionMaster实战避坑指南:从安装崩溃到流程调通的全记录 作为一名刚接触机器视觉的工程师,第一次打开海康VisionMaster时,我以为这不过是又一个"下一步"就能搞定的软件。直到连续三天深夜对着报错弹窗抓狂,才明白…...

抖音下载器终极指南:三步实现批量下载与音频提取

抖音下载器终极指南:三步实现批量下载与音频提取 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖…...

RTX 3060就能跑!Chandra OCR从安装到批量处理,完整教程来了

RTX 3060就能跑!Chandra OCR从安装到批量处理,完整教程来了 1. 为什么选择Chandra OCR 在日常工作中,我们经常遇到需要将纸质文档、扫描件或PDF转换为可编辑电子格式的需求。传统OCR工具往往存在以下痛点: 只能识别文字&#x…...

2026年外墙保温防火一站式服务,哪家专业?带你一探究竟!

在建筑行业蓬勃发展的当下,外墙保温防火工程愈发重要。优质的外墙保温防火服务,不仅能提升建筑的节能性和安全性,还能延长建筑使用寿命。然而,市场上相关服务提供商众多,质量良莠不齐,让客户在选择时犯了难…...

长芯微LPA206完全P2P替代PGA206,是数字可编程增益仪表放大器

描述LPA206是数字可编程增益仪表放大器,非常适合数据采集系统。LPA206的快速稳定时间允许多路复用输入信道,从而提高系统效率。FET输入消除了模拟多路复用器串联电阻引起的IB误差。增益由两条CMOS/TTL兼容地址线选择。即使在电源关闭的情况下&#xff0c…...

可编辑PPT|大模型在企业的应用实践分享

企业AI落地痛点企业在推进AI转型时普遍面临五大困境。AI专业人才储备不足,业务部门需求层出不穷,技术团队却无力承接。核心经营数据涉及商业机密,云端部署存在泄露风险。智能体需要对接内部系统和业务流程,定制化开发门槛极高。多…...

KeymouseGo:如何通过鼠标键盘录制实现自动化办公革命?

KeymouseGo:如何通过鼠标键盘录制实现自动化办公革命? 【免费下载链接】KeymouseGo 类似按键精灵的鼠标键盘录制和自动化操作 模拟点击和键入 | automate mouse clicks and keyboard input 项目地址: https://gitcode.com/gh_mirrors/ke/KeymouseGo …...

百度网盘直链解析实战指南:破解企业文件传输速度瓶颈的完整解决方案

百度网盘直链解析实战指南:破解企业文件传输速度瓶颈的完整解决方案 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 在数字化办公时代,企业文件传输效率…...

软件模块化的功能分解与接口设计

软件模块化的功能分解与接口设计 在软件开发中,模块化设计是提高代码可维护性、可复用性和可扩展性的关键手段。通过将复杂系统拆分为功能独立的模块,并定义清晰的接口,开发团队能够更高效地协作,降低系统耦合度。本文将围绕功能…...

QMCDecode终极指南:轻松破解QQ音乐加密格式,实现跨平台播放

QMCDecode终极指南:轻松破解QQ音乐加密格式,实现跨平台播放 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录&…...

碧蓝航线智能自动化脚本:让你的游戏体验效率翻倍

碧蓝航线智能自动化脚本:让你的游戏体验效率翻倍 【免费下载链接】AzurLaneAutoScript Azur Lane bot (CN/EN/JP/TW) 碧蓝航线脚本 | 无缝委托科研,全自动大世界 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneAutoScript 你是否厌倦了重…...

突破苹果限制:用OpenCore Legacy Patcher让旧Mac焕发第二春的终极指南

突破苹果限制:用OpenCore Legacy Patcher让旧Mac焕发第二春的终极指南 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 您的MacBook Pro已经服役了…...

山石网科WAF漏洞深度解析:从captcha页面到服务器沦陷的全过程

山石网科WAF命令注入漏洞的技术深潜与防御实践 在Web应用安全防护领域,WAF(Web Application Firewall)作为企业防御体系的重要屏障,其自身的安全性往往被过度信任。近期曝光的山石网科WAF命令执行漏洞,恰恰揭示了即便是…...

Unity项目里用Universal Media Player 2.0.3接海康威视RTSP监控,保姆级配置流程(含VLC测试)

Unity集成海康威视RTSP监控全流程指南:从UMP插件配置到VLC预验证 在工业仿真、智慧园区等Unity应用场景中,实时接入安防监控视频流已成为刚需。本文将手把手演示如何通过Universal Media Player 2.0.3插件,在Unity 2021 LTS版本中稳定接入海康…...

SiameseAOE模型在微信小程序评论分析中的应用实战

SiameseAOE模型在微信小程序评论分析中的应用实战 最近和几个做小程序的朋友聊天,他们都在头疼同一个问题:用户评论越来越多,根本看不过来。好评差评混在一起,想提炼点有价值的信息,比如用户到底喜欢商品的哪个点&…...

如何快速配置OBS多平台直播:obs-multi-rtmp插件终极指南

如何快速配置OBS多平台直播:obs-multi-rtmp插件终极指南 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイン 项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp 还在为每次直播只能选择一个平台而烦恼吗?想要同时推流到…...

Keyviz实战指南:3步实现键鼠操作可视化,提升教学演示效率200%

Keyviz实战指南:3步实现键鼠操作可视化,提升教学演示效率200% 【免费下载链接】keyviz Keyviz is a free and open-source tool to visualize your keystrokes ⌨️ and 🖱️ mouse actions in real-time. 项目地址: https://gitcode.com/g…...

局域网内开发板通过代理服务器共享WiFi上网的完整配置指南

1. 为什么需要开发板共享WiFi上网? 很多嵌入式开发者都遇到过这样的场景:开发板通过网线连接到局域网交换机,但交换机没有外网接入,而你的笔记本电脑却连着WiFi可以正常上网。这时候如果开发板需要安装软件包或者访问网络资源&…...

vLLM-v0.17.1SSH部署教程:免Docker手动配置的轻量级推理环境搭建

vLLM-v0.17.1 SSH部署教程:免Docker手动配置的轻量级推理环境搭建 1. vLLM框架简介 vLLM是一个专为大型语言模型(LLM)设计的高性能推理和服务库,以其出色的吞吐量和易用性著称。这个开源项目最初由加州大学伯克利分校的天空计算实验室开发,…...

AI Agent创业公司能给多少钱:股权与薪资对比

?呢干么怎该体具那 不是画大饼,现在市场就是这个价格,好的ai agent研发公司都是抢着要的,由于懂这个的人太少了,而想用这个技能的公司又太多了。我们公司就有一个二本毕业的同学,由于技能牛又懂业务&#x…...

RKNPU2实战指南 --- 【6】量化精度分析全流程解析

1. 量化精度分析的核心价值 第一次接触RKNPU2的量化精度分析功能时,我和大多数开发者一样充满疑问:为什么要在嵌入式设备上大费周章做量化分析?直到在RK3588开发板上部署ResNet18模型时,发现量化后的识别准确率从92%暴跌到67%&…...

MacOS下STM32标准库移植踩坑实录:手把手修复core_cm3.c编译错误(附完整Makefile)

MacOS下STM32标准库移植核心问题解析:从编译错误到Makefile优化实战 当你在MacOS环境下尝试移植STM32标准库时,那个突如其来的core_cm3.c编译错误是否让你措手不及?作为一名经历过同样困境的开发者,我完全理解这种挫败感——明明按…...

FreeRTOS下STM32 HAL库I2C通信避坑:别再傻等I2C_WaitOnFlagUntilTimeout了

FreeRTOS下STM32 HAL库I2C通信优化:从阻塞等待到高效任务调度 在嵌入式开发中,I2C总线因其简单的两线制接口和广泛的外设支持而备受青睐。然而,当我们将STM32的HAL库与FreeRTOS结合使用时,一个常见的性能陷阱正在悄然吞噬着系统的…...

性价比高的无代码多端协同办公知名服务商

在当今数字化办公的浪潮中,企业对于高效、便捷且性价比高的协同办公工具需求日益增长。无代码多端协同办公平台凭借其降低数字化门槛、提升协同效率等优势,成为众多企业的首选。今天,就为大家介绍一家性价比高的无代码多端协同办公知名服务商…...

百科知识卡片制作技巧:提升信息传达效率的7个设计法则

我们的大脑天生偏爱图像而非文字。在进行深度学习或知识梳理时,我习惯将复杂的概念拆解为结构化的图谱,这就是百科知识卡片制作的核心价值所在。它不仅仅是信息的搬运,更是一种视觉思维的重组。但在很长一段时间里,这种重组过程被…...

各种类的模型OpenAI格式

各类模型的OpenAI格式支持程度差异很大,下面逐一详细说明:一、有官方OpenAI格式标准的模型类型1. Chat / Text Completion ✅ 最完整已如前述,/v1/chat/completions 是最成熟的标准。2. Embedding ✅ 有标准POST /v1/embeddings// 请求 {&quo…...

JetLinks社区版2.1本地部署踩坑实录:从MySQL配置到前端Vue项目启动的保姆级避坑指南

JetLinks社区版2.1本地部署实战:MySQL配置与Vue前端联调深度解析 第一次接触JetLinks社区版时,我本以为按照官方文档就能顺利完成本地部署。然而从数据库切换到前后端联调,几乎每个环节都遇到了意料之外的"坑"。这篇文章将分享我从…...

如何彻底解决RDP Wrapper配置中的系统兼容性问题:开源工具的完整指南

如何彻底解决RDP Wrapper配置中的系统兼容性问题:开源工具的完整指南 【免费下载链接】rdpwrap RDP Wrapper Library 项目地址: https://gitcode.com/gh_mirrors/rd/rdpwrap RDP Wrapper Library是一款优秀的开源工具,它让Windows家庭版用户也能享…...