news 2026/4/16 16:07:18

基于Selenium和python的UI自动化测试方案

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于Selenium和python的UI自动化测试方案

一、概述

对于比较复杂的系统,每次有小的迭代测试同学不可能会把所有的流程验证一遍,如果开发无意改动影响了某些流程而测试又没测试到,就可能会出现生产问题,因此很有必要通过自动化的测试去确保系统的稳定性。自动化测试可以选择接口自动化测试和UI自动化测试,从复杂度和实用性来讲UI自动化测试会易用一些,因此我们选择了UI自动化测试。

UI自动化测试是指通过编写自动化脚本来模拟用户与应用程序的交互,测试应用程序的用户界面是否正常工作。这些自动化脚本可以模拟用户的点击、输入和其他交互动作,以及验证应用程序的响应和预期结果。UI自动化测试可以帮助开发团队检测和解决用户界面的问题,提高应用程序的质量和稳定性。常见的UI自动化测试工具包括Selenium、Appium和Cypress等。

二、selenium介绍

Selenium是一个流行的自动化测试框架,用于测试Web应用程序的用户界面。它提供了一组功能强大的工具和库,允许开发人员使用多种编程语言(如Java、Python、C#、JavaScript等)编写自动化测试脚本。

Selenium可以模拟用户在浏览器中的交互行为,例如点击按钮、输入文本、选择下拉菜单等。它支持各种浏览器,包括Chrome、Firefox、Safari等,并且可以在不同的操作系统上运行。

Selenium的核心组件包括:

  • Selenium WebDriver:用于控制浏览器并执行测试操作的API。
  • Selenium Grid:用于在多个浏览器和操作系统上并行运行测试的工具。
  • Selenium IDE:一个浏览器插件,用于录制和回放用户界面操作,生成测试脚本。

使用Selenium,您可以编写灵活、可靠的自动化测试脚本,验证Web应用程序的功能和用户界面是否正常工作。它是一个广泛使用的工具,被许多开发团队和测试团队用于构建自动化测试套件。

三、如何进行UI自动化测试

1、安装python
2、安装Selenium库,可以使用pip命令行安装Selenium库
pip install selenium
3、下载浏览器驱动程序:

根据您使用的浏览器类型,下载相应的浏览器驱动程序。例如,如果您使用Chrome浏览器,则需要下载ChromeDriver。确保将驱动程序的路径添加到系统的环境变量中。

推荐按照以下方式安装:

pip install webdriver-manager

可以通过以下方式配置安装

  1. // 老版本

  2. from selenium import webdriver

  3. from webdriver_manager.chrome import ChromeDriverManager

  4. driver = webdriver.Chrome(ChromeDriverManager().install())

  5. // 新版本

  6. from selenium import webdriver

  7. driver = webdriver.Chrome()

4、开始编写

计划实现功能:跳转到某系统,登录进入

  1. from selenium import webdriver

  2. from selenium.webdriver.common.by import By

  3. from selenium.webdriver.common.action_chains import ActionChains

  4. import time

  5. driver = webdriver.Chrome()

  6. driver.maximize_window()

  7. driver.get('要进入的系统')

  8. # 等待加载

  9. driver.implicitly_wait(4)

  10. # 获取登录按钮

  11. element=driver.find_element(By.CLASS_NAME, value='login-com-btn')

  12. # 用户名输入框

  13. userAccountEle = driver.find_element(By.ID, value="userAccout")

  14. # 密码输入框

  15. passwordEle = driver.find_element(By.CSS_SELECTOR, value='input[type="password"]')

  16. # 验证码输入框

  17. veriCodeEle = driver.find_element(By.CSS_SELECTOR, value='input[placeholder="请输入验证码"]')

  18. # 输入登录信息和验证码

  19. userAccountEle.send_keys('用户名')

  20. passwordEle.send_keys('密码')

  21. veriCodeEle.send_keys('验证码')

  22. # 点击登录

  23. element.click()

5、效果展示

四、总结

1、使用场景

对比较重要的核心系统可以在UAT的稳定版本执行核心流程的UI自动化测试,验证流程是否能够正常运行,结合异常上报系统上报异常数据,及时获得运行结果以及异常数据,做到实时对系统质量的监控。

2、如何更好的使用

如果想做的专业的话,可以集成到自动化测试系统,通过系统自动生成UI测试用例,定时执行以及报告的输出。

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 12:27:31

Transformers模型详解之Seq2Seq架构实现

Transformers模型详解之Seq2Seq架构实现 在当今自然语言处理领域,我们常常面临这样一个现实:一个看似流畅的翻译结果背后,可能隐藏着模型对上下文长达数十个词的依赖关系捕捉失败。传统RNN结构在这种长距离语义建模中逐渐显现出力不从心的一面…

作者头像 李华
网站建设 2026/4/16 13:42:31

244-14AG-Z1YY- FQ同步示波器

244‑14AG‑Z1YY‑FQ 同步示波器 主要特点如下:核心用途用于电信号的实时采集与波形显示,特别适合需要多通道、同步测量的工业或实验场景。能够对多个输入信号进行同步触发与显示,用于分析信号特性、调试设备或故障诊断。主要特点多通道同步采…

作者头像 李华
网站建设 2026/4/16 15:06:17

海鸥优化算法(SOA)优化BP神经网络实现分类模型

海鸥优化算法SOA对BP的权值和阈值做优化,建立多分类和二分类的分类模型。 程序内注释详细直接替换数据就可以用。 程序语言为matlab。 程序运行具体效果图如下所示。 想要的加好友我吧。在机器学习的领域中,分类问题一直是研究的热点。BP神经网络作为一种…

作者头像 李华
网站建设 2026/4/16 15:07:13

Java + Kafka + Flink 构建工业级实时分析平台(一线大厂实践方案曝光)

第一章:Java 工业传感器数据实时分析 在现代工业自动化系统中,传感器持续产生大量时间序列数据,如温度、压力、振动频率等。为了实现设备状态监控、故障预警和生产优化,必须对这些数据进行低延迟的实时分析。Java 凭借其高性能的并…

作者头像 李华
网站建设 2026/4/16 13:34:45

工业传感器数据延迟高达分钟级?用这4步法立刻优化至毫秒响应

第一章:工业传感器数据延迟高达分钟级?现状与挑战在现代工业自动化系统中,传感器作为物理世界与数字系统之间的关键接口,承担着实时采集温度、压力、振动等关键参数的职责。然而,许多实际部署中的工业传感网络仍面临数…

作者头像 李华
网站建设 2026/4/15 4:37:07

【C++26并发编程终极指南】:深度解析std::execution新特性与性能飞跃

第一章:C26并发编程的演进与std::execution的诞生C26标志着并发编程模型的一次重大飞跃,其核心变革体现在引入了统一的执行抽象——std::execution。这一特性旨在解决长期以来多线程、异步任务和并行算法之间执行策略割裂的问题,为开发者提供…

作者头像 李华