UI自动化框架实战

注册页面的基本测试:

page页面:---registry.py

from selenium.webdriver.common.by import By
from base.base import WebUI
import time as t

class Registry(WebUI):
registry=(By.LINK_TEXT,'注册')
emailAddress=(By.XPATH,'/html/body/div[2]/div/div/div/div/form[1]/div[2]/ul/li[1]/span/input')
liJiReg=(By.XPATH,'/html/body/div[2]/div/div/div/div/form[1]/div[3]/ul/li/div/div/a')
emailNull=(By.XPATH,'/html/body/div[2]/div/div/div/div/form[1]/div[2]/ul/li[1]/div[3]/p/abbr')
regPasswd=(By.XPATH,'/html/body/div[2]/div/div/div/div/form[1]/div[2]/ul/li[2]/span/input')
passwordText=(By.XPATH,"/html/body/div[2]/div/div/div/div/form[1]/div[2]/ul/li[2]/div[1]/p/abbr")
numberPh=(By.XPATH,'/html/body/div[2]/div/div/div/div/form[1]/div[2]/ul/li[4]/span/input')
unmberText=(By.XPATH,'/html/body/div[2]/div/div/div/div/form[1]/div[2]/ul/li[4]/div[1]/p/abbr')


def clickLijiReg(self):
'''点击立即注册'''
self.findElement(*self.liJiReg).click()
t.sleep(3)


def clickRegistry(self):
# 点击注册
self.findElement(*self.registry).click()
t.sleep(3)

def inputEmailAddress(self,address):
self.findElement(*self.emailAddress).send_keys(address)
t.sleep(3)
self.clickLijiReg()

def inputEmailPasswd(self,password):
self.findElement(*self.regPasswd).send_keys(password)
t.sleep(3)
self.clickLijiReg()

def inputEmailnumberPh(self,number):
self.findElement(*self.numberPh).send_keys(number)


def getEmailValue(self):
return self.findElement(*self.numberPh).text


def getEmailnumberValue(self):
return self.findElement(*self.unmberText).text

def getPwdValue(self):
return self.findElement(*self.passwordText).text

def switchReg(self):
# 跳转到注册页面
nowHandler=self.driver.current_window_handle
self.clickRegistry()
allHandlers=self.driver.window_handles
for handler in allHandlers:
if handler!=nowHandler:
# 切换到注册页面
self.driver.switch_to.window(handler)
# self.inputEmailAddress(addrss='asdzxc')
self.inputEmailAddress(address='')

def switchRegEmail(self):
# 跳转到注册的页面测试邮箱
nowHandler=self.driver.current_window_handle
self.clickRegistry()
allHandlers=self.driver.window_handles
for handler in allHandlers:
if handler!=nowHandler:
# 切换到注册页面
self.driver.switch_to.window(handler)
# self.inputEmailAddress(addrss='asdzxc')
self.inputEmailAddress(address='')

def switchRegPasswd(self):
# 跳转到注册的页面测试邮箱
nowHandler=self.driver.current_window_handle
self.clickRegistry()
allHandlers=self.driver.window_handles
for handler in allHandlers:
if handler!=nowHandler:
# 切换到注册页面
self.driver.switch_to.window(handler)
# self.inputEmailAddress(addrss='asdzxc')
self.inputEmailPasswd(password='sdfsf')



def sinaReg(self,address,password,number):

self.inputEmailAddress(address=address)
self.inputEmailPasswd(password=password)
self.inputEmailnumberPh(number=number)
self.clickLijiReg()

test页面---test_register.pfrom selenium import webdriver

import  unittest
from page.login import Login
from page.registry import Registry
import time as t
from utils.operationJson import readJson


class RegistryTest(unittest.TestCase,Registry,Login):

def setUp(self) -> None:
self.driver = webdriver.Chrome()
self.driver.maximize_window()
self.driver.get('https://mail.sina.com.cn/')
self.driver.implicitly_wait(30)
# 清理

def tearDown(self) -> None:
self.driver.quit()

def test_registry_email_address(self):
'''注册:邮箱地址为空的验证'''
self.switchReg()
self.assertEqual(self.getEmailValue(),readJson()['null'])
t.sleep(3)

def test__registry_email_passwd(self):
'''注册:验证邮箱密码为空的验证'''
self.switchReg()
self.assertEqual(self.getPwdValue(),readJson()["pwd"])
t.sleep(3)

def test_registry_email_address_null(self):
'''注册:验证邮箱地址为空密码只有不足6位的提示信息'''
self.switchReg()
self.sinaReg(address='',password='sdrg')
self.assertEqual(self.getPwdValue(),readJson()['passwdnull'])
t.sleep(3)

def test_registry_email_address_notChinese(self):
'''注册:验证邮箱地址是中文的错误提示信息'''
self.switchReg()
self.sinaReg(address='风在吹雨在笑',password='')
self.assertEqual(self.getEmailValue(),readJson()['notChinese'])
t.sleep(3)

def test_registry_email_address_notcharacter(self):
'''注册:验证邮箱地址带有全角字符的错误提示信息'''
self.switchReg()
self.sinaReg(address='风在吹,雨在笑',password='')
self.assertEqual(self.getEmailValue(),readJson()['notcharacter'])
t.sleep(3)

def test_registry_email_unmber(self):
self.switchReg()
self.sinaReg(address='',password='',number='asdsds')
self.assertEqual(self.getEmailnumberValue(),readJson()['number'])
t.sleep(3)

data页面:--sina.json
{
"null": "请输入邮箱名",
"format": "您输入的邮箱名格式不正确",
"error": "登录名或密码错误",
"pwd":"请输入密码",
"passwdnull": "密码的长度应该在6-16个字符之间",
"notChinese": "不能有中文",
"notcharacter": "不能有全角字符",
"number": "手机号码输入格式错误",
"CG": "您的邮件已发送"

}
common里面--public.py
import os

def base_dir():
return os.path.dirname(os.path.dirname(__file__))

utils里面的---operationJson.py
import  json
import os
from common.public import base_dir

def readJson():
return json.load(open(file=os.path.join(base_dir(),'data','sina.json'),encoding='utf-8'))
# 验证编写的函数中准确性
# print(readJson())
作业:
page底下的send.py页面:
from selenium.webdriver.common.by import By
from base.base import WebUI
import time as t
from selenium.webdriver.common.action_chains import ActionChains
from selenium import webdriver


class Send(WebUI):
write=(By.XPATH,'/html/body/div[2]/div/div[5]/div[2]/div[1]/div[1]/div[1]/ul/li[1]/a')
sendRen=(By.XPATH,'/html/body/div[2]/div/div[5]/div[2]/div[2]/div[2]/div[1]/div/div[1]/div[2]/form/div/table/tbody/tr[2]/td/ul/li/input')
subject=(By.XPATH,'/html/body/div[2]/div/div[5]/div[2]/div[2]/div[2]/div[1]/div/div[1]/div[2]/form/div/table/tbody/tr[6]/td/input')
emailContent=(By.XPATH,'/html/body/text()')
sendEmail=(By.XPATH,'/html/body/div[2]/div/div[5]/div[2]/div[2]/div[2]/div[1]/div/div[1]/div[1]/span/span[1]/a/i[2]')
success=(By.XPATH,'/html/body/div[2]/div/div[5]/div[2]/div[2]/div[2]/div[1]/div[2]/div[2]/div[1]/div[1]/div/p[1]')
aid=(By.XPATH,'/html/body/div[2]/div/div[4]/div[1]/div[3]/div[2]/ul/li[5]/a')
aidCenter=(By.XPATH,'//*[@id="right_nav_3"]')
unmessage=(By.XPATH,'//*[@id="unread_num_all"]')
integralchange=(By.XPATH,'//*[@id="showUserList"]/li[2]/a/span/b')


def clickWrite(self):
# 写信按钮
t.sleep(5)
self.findElement(*self.write).click()

def inputSendRen(self,content):
# 输入收件人
t.sleep(3)
self.findElement(*self.sendRen).send_keys(content)

def inputSubject(self,content):
# 输入主提
t.sleep(3)
self.findElement(*self.subject).send_keys(content)

# def inputEmailContent(self,content):
#
# # t.sleep(5)
# # # self.driver.switch_to.frame(0)
# # self.findElement(*self.emailContent).send_keys(content)


def clickAid(self):
self.findElement(*self.aid)

def clickAidCenter(self):
self.findElement(*self.aidCenter)



def clickSendEmail(self):
# 点击发送按钮
t.sleep(3)
self.findElement(*self.sendEmail).click()


def sendEmailSuccess(self,sendRen,subject):

self.clickWrite()
self.inputSendRen(content=sendRen)
self.inputSubject(content=subject)
self.clickSendEmail()

def getaid(self):

driver = self.driver
obj = ActionChains(driver=driver)
setting = driver.find_element_by_xpath('/html/body/div[2]/div/div[4]/div[1]/div[3]/div[2]/ul/li[5]/a')
# 悬浮框静置
obj.move_to_element(setting).perform()
t.sleep(3)
driver.find_element_by_xpath('//*[@id="right_nav_3"]').click()
t.sleep(3)


def Unmessage(self):
t.sleep(3)
self.findElement(*self.unmessage).click()


def Integralchange(self):
t.sleep(3)
self.findElement(*self.integralchange).click()




def getSuccess(self):
return self.findElement(*self.success).text

test地下的test_send页面
from  selenium import  webdriver
import unittest
from page.login import Login
from page.registry import Registry
import time as t
from utils.operationJson import readJson
from page.send import Send
from selenium.webdriver.common.action_chains import ActionChains

class SendTest(unittest.TestCase,Send,Login):

def setUp(self) -> None:
self.driver = webdriver.Chrome()
self.driver.maximize_window()
self.driver.get('https://mail.sina.com.cn/')
self.driver.implicitly_wait(30)
# 清理

def tearDown(self) -> None:
self.driver.quit()

def test_send_email(self):

# 测试发送信息的基本功能
t.sleep(5)
self.singLogin(username='wuya1303@sina.com',password='admin123')
t.sleep(3)
self.sendEmailSuccess(sendRen='1721219991@qq.com',subject='自动化测试')
self.assertEqual(self.getSuccess(),readJson()['CG'])
t.sleep(3)

def test_aid(self):
# 测试悬浮里面的帮助中心是否正常展示
t.sleep(5)
self.singLogin(username='wuya1303@sina.com', password='admin123')
t.sleep(3)
self.getaid()
# print(self.driver.current_url)
self.assertTrue(self.driver.current_url.startswith('https://m0.mail.sina.com.cn/classic/'
'index.php#title'))
t.sleep(3)


def test_unmassage(self):
# 测试未读邮件
t.sleep(3)
self.singLogin(username='wuya1303@sina.com', password='admin123')
t.sleep(3)
self.Unmessage()
t.sleep(3)
# print(self.driver.current_url)
self.assertTrue(self.driver.current_url.startswith('https://m0.mail.sina.com.cn/classic/index.php#action=maillist&fid=all&title'))
t.sleep(3)


def test_integralchange(self):
# 测试积分换礼
t.sleep(3)
self.singLogin(username='wuya1303@sina.com', password='admin123')
t.sleep(3)
self.Integralchange()
t.sleep(3)
# print(self.driver.current_url)
self.assertTrue(self.driver.current_url.startswith('https://m0.mail.sina.com.cn/classic/index.php#title'))
t.sleep(3)
posted @ 2022-04-13 20:25  净植  阅读(94)  评论(0)    收藏  举报