'''
以下为文件中的测试数据,第一列为函数步骤,第二列为数据,文件存放路径为:e:\\data.txt
open_browser||chrome
visit||https://www.baidu.com
sleep||3
assert_word||百度
quit||0
'''
from selenium import webdriver
import sys
import time
driver='' #类变量、全局变量,存放获取到的浏览器驱动,以便其他函数使用
def get_test_step_data(data_file): #将文件中的测试数据读取出来存在列表中
test_step_data=[] #存放测试数据的列表
with open(data_file,'r',encoding='utf-8') as fp: #读取测试数据
for data in fp:
if len(data.split('||'))==2: #判断读取的每行数据切割后是否为两个
action=data.split('||')[0].strip() #获取该行切割后的第一个数据,并去除前后空格
value=data.split('||')[1].strip() #获取改该行切割后的第二个数据,并去除前后空格
test_step_data.append([action,value]) #将获取到的该行数据以列表的形式存入test_data列表中
else: #如果切割后的数据不是三个,则数据格式错误
print('此行测试数据格式不正确:%s' %data)
return test_step_data #将测试数据返回
def open_browser(browser_name): #根据测试数据获取指定浏览器的驱动
global driver #全局变量使用方法
if 'ie' in browser_name:
driver=webdriver.Ie() #将获取到的浏览器驱动存入全局变量中
elif 'chrome' in browser_name:
driver=webdriver.Chrome()
elif 'firefox' in browser_name:
driver=webdriver.Firefox()
else:
print('不支持该浏览器:%s' %browser_name)
exist()
driver.set_page_load_timeout(10) #设置超时时间,如果访问网页时间超过10秒就报错
return driver #返回驱动
def visit(url): #访问网址,获取网页数据url
global driver
try:
driver.get(url) #访问网址,获取网页数据url
except TimeoutException:
print('网页访问超时')
def sleep(times): #等待时间函数
try:
times=int(times) #字符串转换为数字
except:
times=3
time.sleep(times)
def assert_word(key_word): #断言网页数据中是否包含指定的关键字key_word
global driver
try:
assert key_word in driver.page_source #断言网页源码中是否包含指定关键字
except AssertionError:
print(key_word,'关键字断言失败')
except Exception as e:
print('出现了其他异常',e)
else:
print(key_word,'关键字断言成功')
def quit(a): #关闭浏览器
global driver
driver.quit()
test_step_data=get_test_step_data('e:\\data.txt') #获取文件中的测试动作和测试数据
for data in test_step_data: #遍历测试数据
action=data[0] #获取测试动作
value=data[1] #获取测试数据
command="%s('%s')" %(action,value) #将动作和数据组合成函数字符串
eval(command) #执行函数字符串
print('测试完成')
Python selenium automation code is separated from test steps and test data
Guess you like
Origin blog.csdn.net/weixin_44123630/article/details/113818455
Recommended
Ranking