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

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()

http://www.jsqmd.com/news/310938/

相关文章:

  • ChatGLM-6B多轮对话能力:支持文件上传(txt/pdf)内容问答扩展
  • 工业通信接口PCB设计(RS485/CAN):操作指南
  • SiameseUniNLU基础教程:Pointer Network解码器如何精准定位中文Span边界(含位置编码分析)
  • 游戏化编程教育:突破教学困境的创新路径
  • 快速入门指南:fft npainting lama图像编辑区功能详解
  • 3分钟掌握消息留存工具:高效解决方案与零门槛实施指南
  • Z-Image-Turbo实战案例:用轻量镜像实现毫秒级文生图生产落地
  • 3大突破:CodeCombat如何让编程教育参与度提升150%
  • 小白也能用!Speech Seaco Paraformer ASR语音转文字保姆级教程
  • Unity战争迷雾系统开发指南:从基础实现到高级优化
  • Z-Image-ComfyUI跨境电商应用:多语言商品图生成实战
  • 颠覆跨生态投屏体验:零成本打造Windows AirPlay接收器,告别设备壁垒
  • SiameseUIE Web界面高级技巧:多Schema切换、历史记录回溯、结果差异高亮对比
  • MedGemma-X Gradio扩展协议:支持HL7/FHIR标准消息交互的中间件开发
  • SenseVoice Small效果对比:不同信噪比下中英文识别准确率曲线
  • Hunyuan-MT-7B-WEBUI启动教程:Jupyter操作不复杂
  • 解锁AI工具增强新可能:全面提升开发效率的完整方案
  • 3大颠覆性工具让科研人员彻底解决文献管理混乱难题
  • SiameseUIE中文-base部署案例:Docker镜像封装与生产环境端口映射
  • 多尺度特征融合实战:模型如何兼顾细节与整体语义?
  • 青龙面板任务自动化指南:从入门到精通的7个实用技巧
  • 简单三步走:用GPEN镜像实现高质量人像增强
  • MultiHighlight:代码阅读的效率革命工具
  • VibeVoice-Realtime中文部署:浏览器兼容性(Chrome/Firefox/Safari)
  • [特殊字符] EagleEye效果惊艳展示:20ms内完成高清图目标检测真实作品集
  • 3步完成Minecraft服务器自动化部署:从模组包到可用服务器的全流程解决方案
  • 通义千问3-Reranker-0.6B效果展示:实时流式文档动态重排能力
  • 零基础入门Z-Image-ComfyUI,轻松生成高质量图片
  • 踩坑总结:如何正确运行BSHM人像抠图模型
  • StructBERT效果展示:方言表达(如粤语书面转写)语义匹配能力