news 2026/9/3 15:59:06

selenium 自动化测试工具实战项目(订单)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
selenium 自动化测试工具实战项目(订单)
温馨提示:读本章之前,基础薄弱的伙伴,先学完【自动化测试之selenium】这篇文章,才能够轻松的学完本文章。
  • 介绍
    • 测试的系统:白月黑羽网站的测试系统(白月SMS系统)
    • 测试的功能:添加药品,删除等等
  • 测试用例
    用例编号主模板子模板前置条件测试步骤预期结果实际结果
    Order_01订单添加订单已创建客户和药品1.点击添加订单按钮,不填写订单名称,填写客户和药品。2.点击创建添加不成功,有相关的提示信息添加不成功,有相关的提示信息
    Order_02订单添加订单已创建客户和药品1.点击添加订单按钮,填写订单名称,不填写客户和填写药品。2.点击创建添加不成功,有相关的提示信息添加不成功,有相关的提示信息
    Order_03订单添加订单已创建客户和药品1.点击添加订单按钮,填写订单名称,填写客户和不填写药品。2.点击创建添加成功添加成功
    Order_04订单删除订单已创建订单1.点击删除按钮,删除订单删除成功删除成功
  • 自动化测试程序
    fromseleniumimportwebdriverfromtimeimportsleep

from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoAlertPresentException, TimeoutException
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

class OrderTest:
definit(self):
self.driver = webdriver.Chrome()

# 前置条件 def Login(self,username,password): self.driver.get('http://127.0.0.1/mgr/sign.html') usernameElement = self.driver.find_element(By.ID, 'username') usernameElement.send_keys(username) sleep(2) passwordElement = self.driver.find_element(By.ID, 'password') passwordElement.send_keys(password) sleep(2) # 点击登录 submitElement = self.driver.find_element(By.XPATH, "//div[@class='col-xs-12']/button") submitElement.click() sleep(2) print('登录成功~') def addCustomer(self,name,phone,address): #点击客户 CustomerElement = self.driver.find_element(By.XPATH,'//section[@class="sidebar"]//ul[@class="sidebar-menu tree"]/li[2]/a') CustomerElement.click() sleep(2) #添加客户 AddCustomerElement = self.driver.find_element(By.XPATH,'//section[@class="content container-fluid"]/div/button') AddCustomerElement.click() sleep(2) #定位元素 CustomerNameElement = self.driver.find_element(By.XPATH,'//div[@class="col-lg-8 col-md-8 col-sm-8"]/div[1]/input') CustomerNameElement.send_keys(Keys.CONTROL + 'a') CustomerNameElement.send_keys(name) sleep(2) PhoneElement = self.driver.find_element(By.XPATH, '//div[@class="col-lg-8 col-md-8 col-sm-8"]/div[2]/input') PhoneElement.send_keys(Keys.CONTROL + 'a') PhoneElement.send_keys(phone) sleep(2) AddressElement = self.driver.find_element(By.XPATH, '//div[@class="col-lg-8 col-md-8 col-sm-8"]/div[3]/textarea') AddressElement.send_keys(Keys.CONTROL + 'a') AddressElement.send_keys(address) sleep(2) # 点击创建 createElement = self.driver.find_element(By.XPATH, '//div[@class="col-lg-12 col-md-12 col-sm-12"]/button[1]') createElement.click() sleep(2) def addDrug(self,drugName,number,describe): #点击药品 drugElement = self.driver.find_element(By.XPATH,'//section[@class="sidebar"]//ul[@class="sidebar-menu tree"]/li[3]/a') drugElement.click() sleep(2) #添加药品 addDrugElement = self.driver.find_element(By.XPATH,'//div[@class="col-lg-12 col-md-12 col-sm-12 add-one-area"]/button') addDrugElement.click() sleep(2) #定位元素 drugNameElement = self.driver.find_element(By.XPATH,'//section[@class="content container-fluid"]//div[@class="col-lg-8 col-md-8 col-sm-8"]/div[1]/input') drugNameElement.send_keys(drugName) sleep(2) numberElement = self.driver.find_element(By.XPATH,'//section[@class="content container-fluid"]//div[@class="col-lg-8 col-md-8 col-sm-8"]/div[2]/input') numberElement.send_keys(number) sleep(2) describeElement = self.driver.find_element(By.XPATH,'//section[@class="content container-fluid"]//div[@class="col-lg-8 col-md-8 col-sm-8"]/div[3]/textarea') describeElement.send_keys(describe) sleep(2) #点击创建 createElement = self.driver.find_element(By.XPATH,'//div[@class="col-lg-12 col-md-12 col-sm-12"]/button[1]') createElement.click() sleep(2) def AddOrderTest(self): OrderName = [' ', '艾莉', 'zulnger'] Coption = ['A','B','C'] Doption = ['E','F','G'] #点击订单 OrderElement = self.driver.find_element(By.XPATH,'//section[@class="sidebar"]//ul[@class="sidebar-menu tree"]/li[4]/a') OrderElement.click() sleep(2) number = 1 while number <= 3: #点击添加订单 addOrderElement = self.driver.find_element(By.XPATH,'//div[@class="col-lg-12 col-md-12 col-sm-12 add-one-area"]/button') addOrderElement.click() sleep(2) for n,c,d in zip(OrderName,Coption,Doption): #Order_01 #订单名称 OrderNameElement = self.driver.find_element(By.XPATH,'//div[@class="col-lg-8 col-md-8 col-sm-8"]/div[1]/input') OrderNameElement.send_keys(Keys.CONTROL+'a') OrderNameElement.send_keys(n) sleep(2) #客户 #下拉框 #创建slect对象 if c == 'A': select = Select(self.driver.find_element(By.XPATH,'//div[@class="col-lg-8 col-md-8 col-sm-8"]/div[2]/select')) select.select_by_index(0) sleep(2) elif c == 'B': pass elif c == 'C': select = Select(self.driver.find_element(By.XPATH, '//div[@class="col-lg-8 col-md-8 col-sm-8"]/div[2]/select')) select.select_by_index(0) sleep(2) else: print('出大错了-……-') #药品 if d == 'E': select = Select(self.driver.find_element(By.XPATH,'//div[@class="col-lg-8 col-md-8 col-sm-8"]/div[3]/select')) select.select_by_index(0) sleep(2) elif d == 'F': select = Select(self.driver.find_element(By.XPATH, '//div[@class="col-lg-8 col-md-8 col-sm-8"]/div[3]/select')) select.select_by_index(0) sleep(2) elif d == 'G': pass else: print('出大错了-……-') #点击创建 createElement = self.driver.find_element(By.XPATH,'//div[@class="col-lg-12 col-md-12 col-sm-12"]/button[1]') createElement.click() try: # 等待 alert 出现(最多等3秒) WebDriverWait(self.driver, 3).until(EC.alert_is_present()) # 切换到 alert 并点击确定(accept) alert = self.driver.switch_to.alert alert.accept() # 点击确定 sleep(2) # alert.dismiss() # 如果想点取消用这个 print("检测到弹窗,已点击确定") except (NoAlertPresentException, TimeoutException): # 没有弹窗,正常跳过 print("没有检测到弹窗,继续执行") pass continue number = number+1 def Delete(self): #点击删除按钮 deleteElement = self.driver.find_element(By.XPATH,"//div[@class='search-result-item'][1]/div[5]/div/label") deleteElement.click() sleep(2) #创建对象 alert = self.driver.switch_to.alert text = alert.text alert.accept() print("提示语:",text) print('删除成功!!!!')

ifname==‘main’:
ot = OrderTest()
ot.Login(‘byhy’,‘88888888’)
ot.addCustomer(‘zulniger’,‘17590967558’,‘伊犁’)
ot.addDrug(‘消食片’,‘20’,‘很有效’)
ot.AddOrderTest()
ot.Delete()

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

2025智能微信红包助手安全使用指南:零Root防封号全攻略

2025智能微信红包助手安全使用指南&#xff1a;零Root防封号全攻略 【免费下载链接】WeChatRedEnvelopesHelper iOS版微信抢红包插件,支持后台抢红包 项目地址: https://gitcode.com/gh_mirrors/we/WeChatRedEnvelopesHelper 微信自动抢红包工具是一款专为Android系统设…

作者头像 李华
网站建设 2026/8/22 7:12:58

Ollama运行translategemma-4b-it:图文翻译模型在远程医疗问诊中应用

Ollama运行translategemma-4b-it&#xff1a;图文翻译模型在远程医疗问诊中应用 1. 为什么远程医疗特别需要图文翻译能力 你有没有遇到过这样的场景&#xff1a;一位海外患者通过视频问诊&#xff0c;把一张英文的化验单截图发给国内医生&#xff0c;医生却要花几分钟手动查词…

作者头像 李华
网站建设 2026/8/29 5:48:58

Chatbox流式传输关闭实战:原理剖析与最佳实践

Chatbox流式传输关闭实战&#xff1a;原理剖析与最佳实践 背景与痛点 流式传输&#xff08;Streaming&#xff09;在 Chatbox 里几乎成了“默认动作”&#xff1a;用户一敲回车&#xff0c;前端就建立长连接&#xff0c;模型边想边吐字&#xff0c;UI 跟着逐字渲染&#xff0…

作者头像 李华
网站建设 2026/8/30 6:31:12

2026毕设ssm+vue宁夏绿色食品溯源系统论文+程序

本系统&#xff08;程序源码&#xff09;带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、选题背景随着互联网技术的深度渗透和消费升级趋势的不断演进&#xff0c;电子商务已成为农产品流通的重要渠道。现有研究主要以传统综合…

作者头像 李华
网站建设 2026/9/3 1:20:40

30B参数大模型GLM-4.7-Flash快速上手攻略

30B参数大模型GLM-4.7-Flash快速上手攻略 你是否试过等30秒才看到第一行回复的大模型&#xff1f;是否在中文场景下反复调整提示词却得不到理想答案&#xff1f;是否想用上最新最强的开源大模型&#xff0c;又担心部署复杂、调用繁琐&#xff1f;别急——GLM-4.7-Flash 镜像就…

作者头像 李华
网站建设 2026/8/21 17:19:14

音乐文件被加密?这个工具让QQ音乐文件自由播放

音乐文件被加密&#xff1f;这个工具让QQ音乐文件自由播放 【免费下载链接】qmcdump 一个简单的QQ音乐解码&#xff08;qmcflac/qmc0/qmc3 转 flac/mp3&#xff09;&#xff0c;仅为个人学习参考用。 项目地址: https://gitcode.com/gh_mirrors/qm/qmcdump 你是否也曾遇…

作者头像 李华