混合驱动:
数据驱动+关键字驱动
测试脚本:
from selenium import webdriver
import time
import re
def visit(url):
global driver
driver.get(url)
time.sleep(3)
driver = webdriver.Chrome(executable_path = "d:\chromedriver")
with open("f:\\testcase.txt") as fp:
for line in fp:
if re.search(r"\$\{(.*?)\}",line):
data_file = re.search(r"\$\{(.*?)\}",line).group(1)
with open(data_file) as fp:
for data in fp:
if data.strip()!="":
action = line.split("||")[0]
data = data.strip()
print(action+"('"+data+"')")
eval(action+"('"+data+"')")
elif line.strip()!="":
action,url = line.split("||")
url = url.strip()
print(action,url,action+"('"+url+"')")
eval(action+"('"+url+"')")
driver.quit()
数据文件:
visit||http://www.bing.com
visit||${f:\\urls1.txt}
http://www.baidu.com
http://www.sogou.com
http://www.sohu.com
关键字模型:
动作||定位表达式||操作值||断言值
动作必须有,其他三个值可以没有,也可以都有
close
click||xpath表达式
click||xpath表达式||断言值
input||xpath表达式||输入值
input||xpath表达式||输入值||断言值
assert||断言值
什么时候断言:
1 页面跳转
2 页面因为你的操作产生了变化
关键字驱动的,所有的动作都是分开的
关键字基于别的关键字做封装
举个例子:
登录:10个动作,
写一个关键字登录:单独写一个登录的函数。
写一个关键字登录:直接去调取另外一个测试步骤的文件。