news 2026/4/18 4:03:09

selenium 自动化测试工具实战项目(客户)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
selenium 自动化测试工具实战项目(客户)
  • 介绍
  • 测试用例
    用例编号主模块子模块前置条件测试步骤预期结果实际结果
    Customer_01客户添加客户已登录1.不填写客户名,填写联系电话,地址。2.点击创建创建不成功,并且有相应的提示创建不成功,并且有相应的提示
    Customer_02客户添加客户已登录1.填写客户名,不填写联系电话,填写地址。2.点击创建创建不成功,并且有相应的提示创建不成功,并且有相应的提示
    Customer_03客户添加客户已登录1.填写客户名,填写联系电话,不填写地址。2.点击创建创建不成功,并且有相应的提示创建不成功,并且有相应的提示
    Customer_04客户编辑已登录,已创建客户1.分别修改客户名,联系电话,地址。2.点击确定能正常修改能正常修改
    Customer_05客户删除已登录,已创建客户1.点击删除删除成功删除成功
  • 自动化测试程序
    fromseleniumimportwebdriverfromtimeimportsleep

from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.common.exceptions import NoAlertPresentException

class Customer:
definit(self):
self.driver = webdriver.Chrome()
def OpenChrome(self):
self.driver.get(‘http://127.0.0.1/mgr/sign.html’)

#前置条件 def Login(self): #元素定位 userNameElement = self.driver.find_element(By.ID,'username') userNameElement.send_keys('byhy') sleep(1) passWordElement = self.driver.find_element(By.ID,'password') passWordElement.send_keys('88888888') #点击登录按钮 submitElement = self.driver.find_element(By.XPATH,'//div[@class="col-xs-12"]/button') submitElement.click() sleep(3) print('用户登录成功!!!') def addCustomer(self): try: CustomerNameList = ['','zulniger','zulniger'] PhoneList = ['17590967558','12','17590967558'] AddressList = ['霍尔果斯','霍尔果斯','1'] number = 0 #点击客户 CustomerElement=self.driver.find_element(By.XPATH,'//section/ul/li[2]/a') CustomerElement.click() sleep(1) while True: # 添加客户 AddCustomerElement = self.driver.find_element(By.XPATH,'//section[@class="content container-fluid"]/div/button') AddCustomerElement.click() sleep(2) for n,p,a in zip(CustomerNameList,PhoneList,AddressList): #输入客户名,联系电话,地址 #Customer_01 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(f'{n}') 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(f'{p}') 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(f'{a}') 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) # Confirm 弹窗 try: Confirm = self.driver.switch_to.alert print('创建失败提示语 ——> ', Confirm.text) Confirm.accept() sleep(3) except NoAlertPresentException: print("当前没有 alert,跳过处理") continue break except Exception as e: print("Error:",e) def Redact(self): number = 1 n=0 while n<=3: #点击编辑 redactElement = self.driver.find_element(By.XPATH,'//div[@class="search-result-item"][1]/div[4]/div/label[1]') redactElement.click() sleep(2) if number == 1: RCNElement=self.driver.find_element(By.XPATH,'//div[@class="search-result-item"]/div/div[1]/input[1]') RCNElement.send_keys(Keys.CONTROL+'a') RCNElement.send_keys('小明') sleep(3) # 点击确定 subElement = self.driver.find_element(By.XPATH,'//div[@class="search-result-item"]/div[2]/div/label[1]') subElement.click() sleep(2) elif number == 2: RPElement = self.driver.find_element(By.XPATH,'//div[@class="search-result-item"]/div/div[2]/input') RPElement.send_keys(Keys.CONTROL+'a') RPElement.send_keys('13390987867') sleep(3) # 点击确定 subElement = self.driver.find_element(By.XPATH,'//div[@class="search-result-item"]/div[2]/div/label[1]') subElement.click() sleep(2) else: RAElement = self.driver.find_element(By.XPATH,'//div[@class="search-result-item"]/div/div[3]/textarea') RAElement.send_keys(Keys.CONTROL+'a') RAElement.send_keys('伊宁市') sleep(3) # 点击确定 subElement = self.driver.find_element(By.XPATH,'//div[@class="search-result-item"]/div[2]/div/label[1]') subElement.click() sleep(2) number = number+1 n = n+1 print('编辑完毕!!!') def delete(self): #删除客户 DeleteElement = self.driver.find_element(By.XPATH,'//div[@class="search-result-item"][1]/div[4]/div/label[2]') DeleteElement.click() print('删除成功~')

ifname== ‘main’:
ct = Customer()
ct.OpenChrome()
ct.Login()
ct.addCustomer()
ct.Redact()
ct.delete()

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

工业通信接口PCB设计(RS485/CAN):操作指南

以下是对您提供的技术博文进行深度润色与结构重构后的专业级工业通信接口PCB设计指南。全文已彻底去除AI生成痕迹&#xff0c;采用资深嵌入式系统工程师口吻撰写&#xff0c;语言自然、逻辑严密、案例真实、细节扎实&#xff0c;兼具教学性与工程落地性。所有技术要点均基于一线…

作者头像 李华
网站建设 2026/4/18 4:01:06

动手实操MGeo模型,真实地址数据测试结果分享

动手实操MGeo模型&#xff0c;真实地址数据测试结果分享 1. 引言&#xff1a;不是所有“相似”都值得信任 你有没有遇到过这样的情况&#xff1f; 系统里存着“上海市徐汇区漕溪北路201号”和“上海徐汇漕溪北路201号万体馆”&#xff0c;后台判定为两个不同地址&#xff1b;…

作者头像 李华
网站建设 2026/4/18 4:01:26

Z-Image-Edit多场景应用案例:电商修图自动化部署教程

Z-Image-Edit多场景应用案例&#xff1a;电商修图自动化部署教程 1. 为什么电商团队需要Z-Image-Edit 你有没有遇到过这样的情况&#xff1a;运营同事凌晨发来消息&#xff0c;“主图背景太杂&#xff0c;要换成纯白”&#xff1b;设计师刚改完第8版模特姿势&#xff0c;又收…

作者头像 李华
网站建设 2026/4/18 3:30:24

Cursor Free VIP:AI开发效率提升自动化工具全攻略

Cursor Free VIP&#xff1a;AI开发效率提升自动化工具全攻略 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached your trial r…

作者头像 李华
网站建设 2026/4/17 8:47:43

MinerU-1.2B性能优化实践:量化推理使CPU内存占用降低40%

MinerU-1.2B性能优化实践&#xff1a;量化推理使CPU内存占用降低40% 1. 为什么轻量模型也需要做内存优化&#xff1f; 你有没有遇到过这样的情况&#xff1a;明明只跑一个1.2B参数的模型&#xff0c;CPU内存却瞬间飙到8GB以上&#xff0c;连带整个系统变卡、响应迟缓&#xf…

作者头像 李华
网站建设 2026/4/18 3:30:11

MedGemma-X部署最佳实践:/root/build目录权限设置与日志轮转策略

MedGemma-X部署最佳实践&#xff1a;/root/build目录权限设置与日志轮转策略 1. 为什么权限和日志管理不是“可选项”&#xff0c;而是稳定运行的生命线 很多团队在成功跑通MedGemma-X的第一个推理请求后&#xff0c;就以为部署完成了。但真实场景中&#xff0c;真正决定系统…

作者头像 李华