selenium 自动化测试工具实战项目(订单)
2026/7/12 8:31:51 网站建设 项目流程
温馨提示:读本章之前,基础薄弱的伙伴,先学完【自动化测试之selenium】这篇文章,才能够轻松的学完本文章。
  • 介绍
    • 测试的系统:白月黑羽网站的测试系统(白月SMS系统)
    • 测试的功能:添加药品,删除等等
  • 测试用例
    用例编号主模板子模板前置条件测试步骤预期结果实际结果
    Order_01订单添加订单已创建客户和药品1.点击添加订单按钮,不填写订单名称,填写客户和药品。2.点击创建添加不成功,有相关的提示信息添加不成功,有相关的提示信息
    Order_02订单添加订单已创建客户和药品1.点击添加订单按钮,填写订单名称,不填写客户和填写药品。2.点击创建添加不成功,有相关的提示信息添加不成功,有相关的提示信息
    Order_03订单添加订单已创建客户和药品1.点击添加订单按钮,填写订单名称,填写客户和不填写药品。2.点击创建添加成功添加成功
    Order_04订单删除订单已创建订单1.点击删除按钮,删除订单删除成功删除成功
  • 自动化测试程序
    fromseleniumimportwebdriverfromtimeimportsleep

from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoAlertPresentException, TimeoutException
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

class OrderTest:
definit(self):
self.driver = webdriver.Chrome()

# 前置条件 def Login(self,username,password): self.driver.get('http://127.0.0.1/mgr/sign.html') usernameElement = self.driver.find_element(By.ID, 'username') usernameElement.send_keys(username) sleep(2) passwordElement = self.driver.find_element(By.ID, 'password') passwordElement.send_keys(password) sleep(2) # 点击登录 submitElement = self.driver.find_element(By.XPATH, "//div[@class='col-xs-12']/button") submitElement.click() sleep(2) print('登录成功~') def addCustomer(self,name,phone,address): #点击客户 CustomerElement = self.driver.find_element(By.XPATH,'//section[@class="sidebar"]//ul[@class="sidebar-menu tree"]/li[2]/a') CustomerElement.click() sleep(2) #添加客户 AddCustomerElement = self.driver.find_element(By.XPATH,'//section[@class="content container-fluid"]/div/button') AddCustomerElement.click() sleep(2) #定位元素 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(name) 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(phone) 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(address) 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) def addDrug(self,drugName,number,describe): #点击药品 drugElement = self.driver.find_element(By.XPATH,'//section[@class="sidebar"]//ul[@class="sidebar-menu tree"]/li[3]/a') drugElement.click() sleep(2) #添加药品 addDrugElement = self.driver.find_element(By.XPATH,'//div[@class="col-lg-12 col-md-12 col-sm-12 add-one-area"]/button') addDrugElement.click() sleep(2) #定位元素 drugNameElement = self.driver.find_element(By.XPATH,'//section[@class="content container-fluid"]//div[@class="col-lg-8 col-md-8 col-sm-8"]/div[1]/input') drugNameElement.send_keys(drugName) sleep(2) numberElement = self.driver.find_element(By.XPATH,'//section[@class="content container-fluid"]//div[@class="col-lg-8 col-md-8 col-sm-8"]/div[2]/input') numberElement.send_keys(number) sleep(2) describeElement = self.driver.find_element(By.XPATH,'//section[@class="content container-fluid"]//div[@class="col-lg-8 col-md-8 col-sm-8"]/div[3]/textarea') describeElement.send_keys(describe) 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) def AddOrderTest(self): OrderName = [' ', '艾莉', 'zulnger'] Coption = ['A','B','C'] Doption = ['E','F','G'] #点击订单 OrderElement = self.driver.find_element(By.XPATH,'//section[@class="sidebar"]//ul[@class="sidebar-menu tree"]/li[4]/a') OrderElement.click() sleep(2) number = 1 while number <= 3: #点击添加订单 addOrderElement = self.driver.find_element(By.XPATH,'//div[@class="col-lg-12 col-md-12 col-sm-12 add-one-area"]/button') addOrderElement.click() sleep(2) for n,c,d in zip(OrderName,Coption,Doption): #Order_01 #订单名称 OrderNameElement = self.driver.find_element(By.XPATH,'//div[@class="col-lg-8 col-md-8 col-sm-8"]/div[1]/input') OrderNameElement.send_keys(Keys.CONTROL+'a') OrderNameElement.send_keys(n) sleep(2) #客户 #下拉框 #创建slect对象 if c == 'A': select = Select(self.driver.find_element(By.XPATH,'//div[@class="col-lg-8 col-md-8 col-sm-8"]/div[2]/select')) select.select_by_index(0) sleep(2) elif c == 'B': pass elif c == 'C': select = Select(self.driver.find_element(By.XPATH, '//div[@class="col-lg-8 col-md-8 col-sm-8"]/div[2]/select')) select.select_by_index(0) sleep(2) else: print('出大错了-……-') #药品 if d == 'E': select = Select(self.driver.find_element(By.XPATH,'//div[@class="col-lg-8 col-md-8 col-sm-8"]/div[3]/select')) select.select_by_index(0) sleep(2) elif d == 'F': select = Select(self.driver.find_element(By.XPATH, '//div[@class="col-lg-8 col-md-8 col-sm-8"]/div[3]/select')) select.select_by_index(0) sleep(2) elif d == 'G': pass else: print('出大错了-……-') #点击创建 createElement = self.driver.find_element(By.XPATH,'//div[@class="col-lg-12 col-md-12 col-sm-12"]/button[1]') createElement.click() try: # 等待 alert 出现(最多等3秒) WebDriverWait(self.driver, 3).until(EC.alert_is_present()) # 切换到 alert 并点击确定(accept) alert = self.driver.switch_to.alert alert.accept() # 点击确定 sleep(2) # alert.dismiss() # 如果想点取消用这个 print("检测到弹窗,已点击确定") except (NoAlertPresentException, TimeoutException): # 没有弹窗,正常跳过 print("没有检测到弹窗,继续执行") pass continue number = number+1 def Delete(self): #点击删除按钮 deleteElement = self.driver.find_element(By.XPATH,"//div[@class='search-result-item'][1]/div[5]/div/label") deleteElement.click() sleep(2) #创建对象 alert = self.driver.switch_to.alert text = alert.text alert.accept() print("提示语:",text) print('删除成功!!!!')

ifname==‘main’:
ot = OrderTest()
ot.Login(‘byhy’,‘88888888’)
ot.addCustomer(‘zulniger’,‘17590967558’,‘伊犁’)
ot.addDrug(‘消食片’,‘20’,‘很有效’)
ot.AddOrderTest()
ot.Delete()

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询