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

复制代码
相关推荐
阿Q论文39 分钟前
机械设计制造及其自动化/ 机械电子工程 / 机电一体化技术(四自由度的工业机器人)
机器人·自动化·制造
泽众云测试5 小时前
泽众软件与日联科技达成合作,TestOne自动化测试平台助力搭建工业检测装备数字化品控防线
功能测试·测试工具·自动化
向上的车轮5 小时前
GitHub Actions 自动化运维实战:Rust 全栈项目 CI/CD 至华为云
运维·自动化·github
鹿鹿学长6 小时前
从英伟达开源Nemotron 3.5看“本地跑大模型“:一张显卡够用的时代来了
python·自动化
梦想的旅途26 小时前
企微私域自动化:客户全生命周期 SOP 策略与配置实战
运维·自动化·企业微信
xy34537 小时前
SQLMap 核心语法与使用指南(三)
测试工具·渗透测试·sqlmap
梦想的旅途27 小时前
企业微信销售自动化:线索分配与超时预警
小程序·自动化·企业微信
我的xiaodoujiao7 小时前
快速学习Python基础知识详细图文教程18--多线程
开发语言·python·学习·测试工具
HiDev_8 小时前
【非标自动化】硬核阅读理解620行梯形图-逆推工位逻辑
运维·自动化
xiaoxiangsiyan9 小时前
机房交换机交换技术与服务器链路聚合深度指南
运维·服务器·网络·学习·自动化·bond