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

复制代码
相关推荐
qq_4260039617 小时前
启动playwright录制codegen生成自动化测试脚本
python·自动化
其实防守也摸鱼21 小时前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
森叶21 小时前
用远程调试端口自动化 Chrome 应用商店发布:做法、三个真坑,以及你必须知道的风险
自动化
懂软件的胡子个哥1 天前
微信机器人为什么需要“回复候选”而不是所有 AI 内容直接发送
运维·微信·自动化·wechatapi·个人微信号二次开发
jingli91 天前
多平台多店铺客服怎么统一接待?千牛/拼多多/抖音/京东/闲鱼/微信/快手切窗口太累,一个后台集中接管的七步落地方案(2026 实操版)
人工智能·自动化·用户运营
坚定信念,勇往无前1 天前
Playwright 的本质
自动化·网络爬虫
把头塞进显示器1 天前
电商平台-测试报告
python·selenium·pytest
乐橙开放平台2 天前
从「多套客户端」到一套开放能力:乐橙视频监控能力复盘
笔记·物联网·自动化·音视频·智能家居