首页 技术 正文
技术 2022年11月11日
0 收藏 756 点赞 3,548 浏览 2852 个字

一.设计测试用例

1.分析我之前写的登录脚本:

from selenium import webdriver
import time
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.ui import WebDriverWaiturl = 'http://www.maiziedu.com/'
login_path = '/html/body/div[2]/div/div/div/div/a[2]'
account = 'xxx' #这里需填实际的账号
pwd = 'maizi123456' #预先设定好网址和账号密码def get_ele_times(driver,times,func):
return WebDriverWait(driver,times).until(func) #等待方法def login_test():
driver = webdriver.Firefox() #open firefox
driver.get(url) #打开url
time.sleep(1)
driver.maximize_window() #最大化窗口 ele_login = get_ele_times(driver,10,\
lambda driver:driver.find_element_by_xpath(login_path))
ele_login.click() #找到登录,然后点击
#相当于:driver.find_element_by_link_text(login_text).click() account_ele = driver.find_element_by_xpath('//*[@id="id_account_l"]')
account_ele.send_keys('')
account_ele.send_keys(account) password_ele = driver.find_element_by_xpath('//*[@id="id_password_l"]')
password_ele.send_keys('')
password_ele.send_keys(pwd) driver.find_element_by_xpath('//*[@id="login_btn"]').click()
try:
driver.find_element_by_link_text('该账号不正确')
print ("ACCOUNT AND PWD ERROR!")
except:
print ("ACCOUNT AND PWD RIGHT!")if __name__ == '__main__':
login_test()

Selenium(八)测试用例的设计与模块化

2.分析脚本功能是否可以模块化

Selenium(八)测试用例的设计与模块化

3.模块化与数据隔离

Selenium(八)测试用例的设计与模块化

4.修改后的模型

Selenium(八)测试用例的设计与模块化

二.测试用例模块化

1.

Selenium(八)测试用例的设计与模块化

2.模块化的代码:

from selenium import webdriver
import time
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.ui import WebDriverWaiturl = 'http://www.maiziedu.com/'
login_xpath = '/html/body/div[2]/div/div/div/div/a[2]'
account = 'XXX'
pwd = 'maizi123456' #预先设定好网址和账号密码def openBrower(): #配置浏览器
webdriver_handle = webdriver.Firefox()
return webdriver_handle def openUrl(handle,url): #打开url
handle.get(url)def get_ele_times(driver,times,func):
return WebDriverWait(driver,times).until(func) #等待方法 def findElement(driver,arg):
'''
arg must be dict
1.user_xpath:用户名
2.pwd_xpath:密码
3.login_xpath:登录按钮
return useEle,pwdEle,loginEle
''' useEle = driver.find_element_by_xpath(arg['user_xpath'])
pwdEle = driver.find_element_by_xpath(arg['pwd_xpath'])
loginEle = driver.find_element_by_xpath(arg['login_xpath'])
return useEle,pwdEle,loginEledef sendVals(eletuple,arg):
'''
ele tuple
account:uname,pwd
'''
listkey = ['uname','pwd']
i = 0
for key in listkey:
eletuple[i].send_keys('')
eletuple[i].clear()
eletuple[i].send_keys(arg[key])
i+=1
eletuple[2].click()
def checkResult(driver,text):
try:
driver.find_element_by_link_text(test)
print ("ACCOUNT AND PWD ERROR!")
except:
print ("ACCOUNT AND PWD RIGHT!")def login_test():
driver = openBrower()
openUrl(driver,url)
driver.maximize_window()
ele_login = get_ele_times(driver,10,lambda driver:driver.find_element_by_xpath(login_xpath))
ele_login.click()
#字典
ele_dict = {'user_xpath':'//*[@id="id_account_l"]',\
'pwd_xpath':'//*[@id="id_password_l"]','login_xpath':'//*[@id="login_btn"]'}
account_dict = {'uname':account,'pwd':pwd} ele_tuple = findElement(driver,ele_dict) #接收字典的值 sendVals(ele_tuple,account_dict)
checkResult(driver,'该账号不正确')
driver.find_element_by_link_text('退出').click()if __name__ == '__main__':
login_test()
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,489
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,904
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,737
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,490
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,128
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,291