news 2026/6/15 13:20:49

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/6/10 15:43:18

Axure RP中文界面3步搞定:2024最新版设计师效率提升指南

Axure RP中文界面3步搞定&#xff1a;2024最新版设计师效率提升指南 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包&#xff0c;不定期更新。支持 Axure 9、Axure 10。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn …

作者头像 李华
网站建设 2026/6/13 22:25:42

Unity战争迷雾实现指南:从原理到实践的完整路径

Unity战争迷雾实现指南&#xff1a;从原理到实践的完整路径 【免费下载链接】FogOfWar unity下一种基于渲染可见区域的战争迷雾 项目地址: https://gitcode.com/gh_mirrors/fo/FogOfWar 作为策略游戏开发者&#xff0c;我们经常需要为玩家创造一个充满未知与探索的战场环…

作者头像 李华
网站建设 2026/6/8 11:52:48

Qwen2.5-1.5B实操手册:如何将本地Qwen助手集成进VS Code插件

Qwen2.5-1.5B实操手册&#xff1a;如何将本地Qwen助手集成进VS Code插件 1. 为什么你需要一个“能进编辑器”的本地Qwen助手 你有没有过这样的时刻&#xff1a;写代码卡在某个报错上&#xff0c;想查文档又怕切出IDE打断思路&#xff1b;临时需要补一段注释、改个函数名、解释…

作者头像 李华
网站建设 2026/6/15 2:31:15

React 绘制高质量科研绘图: Node.js 到底是什么?它把浏览器里的 JavaScript 引擎(V8)独立了出来

🛠️ React 绘制高质量科研绘图: Node.js 到底是什么?它把浏览器里的 JavaScript 引擎(V8)独立了出来 订阅后私信必回 目录 🛠️ React 绘制高质量科研绘图: Node.js 到底是什么?它把浏览器里的 JavaScript 引擎(V8)独立了出来 在知道React 是什么 结合你的工作流…

作者头像 李华