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

介绍
复制代码
###### 测试的系统:白月黑羽网站的测试系统(白月SMS系统)
复制代码
###### 测试的功能:添加客户,编辑,删除等等
测试用例
用例编号 主模块 子模块 前置条件 测试步骤 预期结果 实际结果
Customer_01 客户 添加客户 已登录 1.不填写客户名,填写联系电话,地址。2.点击创建 创建不成功,并且有相应的提示 创建不成功,并且有相应的提示
Customer_02 客户 添加客户 已登录 1.填写客户名,不填写联系电话,填写地址。2.点击创建 创建不成功,并且有相应的提示 创建不成功,并且有相应的提示
Customer_03 客户 添加客户 已登录 1.填写客户名,填写联系电话,不填写地址。2.点击创建 创建不成功,并且有相应的提示 创建不成功,并且有相应的提示
Customer_04 客户 编辑 已登录,已创建客户 1.分别修改客户名,联系电话,地址。2.点击确定 能正常修改 能正常修改
Customer_05 客户 删除 已登录,已创建客户 1.点击删除 删除成功 删除成功
自动化测试程序
python 复制代码
from selenium import webdriver
from time import sleep

from selenium.webdriver.common.by import By

from selenium.webdriver.common.keys import Keys

from selenium.common.exceptions import NoAlertPresentException

class Customer:

def init (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('删除成功~')

if name == 'main ':

ct = Customer()

ct.OpenChrome()

ct.Login()

ct.addCustomer()

ct.Redact()

ct.delete()

复制代码
相关推荐
goodesocket9 小时前
手机LPDDR芯片测试座厂商适配性强
测试工具
壮哥_icon13 小时前
【Android 系统开发】使用 BAT 脚本高效自动化管理 /system/priv-app/ 系统应用(安装与卸载)
android·运维·自动化
xexpertS13 小时前
分布式系统过载治理:如何通过较小服务控制请求节奏
微服务·自动化
AOwhisky14 小时前
Python 学习笔记(第十三期)——运维自动化(下·前篇):远程命令执行——paramiko基础篇
运维·python·学习·云原生·自动化·运维开发·paramiko
AOwhisky15 小时前
Python 学习笔记(第十四期)——运维自动化(下·中篇):远程文件传输——paramiko进阶篇
运维·python·学习·云原生·自动化·文件传输·paramiko
Land032916 小时前
AI网页元素变化无法自动修复?自带元素自愈的自动化解决方案
运维·人工智能·ai·自动化·rpa
Urbano17 小时前
针织卫衣全流程生产工序科普:自动化替代、产能优化与设备选型实战方案
运维·自动化
ai_coder_ai17 小时前
在自动化脚本中如何实现播音?
人工智能·自动化·语音识别
AC赳赳老秦17 小时前
招投标公开数据自动化采集实战:基于 OpenClaw 的定时抓取与业务关键词精准推送
运维·服务器·数据库·自动化·测试用例·deepseek·openclaw
ClouGence18 小时前
自动化测试,如何让每个用例都保持登录状态?
selenium·测试