数据驱动的形式有很多种:
1.定义变量的方式
2.定义数组、字典的方式
3.读取文件(txt\csv\xml)的方式
1、通过定义变量方式进行参数化
public.py
class Login():
def user_login(self,driver,username,password):
driver.find_element_by_xpath("//input[@name='email']").clear()
driver.find_element_by_xpath("//input[@name='email']").send_keys(username)
driver.find_element_by_name("password").clear()
driver.find_element_by_name("password").send_keys(password)
driver.find_element_by_id("dologin").click()
def user_logout(self,driver):
driver.find_element_by_link_text("退出").click()
driver.quit()
mailTest.py
from selenium import webdriver
from public import Login
class LoginTest():
def __init__(self):
self.driver=webdriver.Firefox()
self.driver.implicitly_wait(10)
self.driver.get("http://www.126.com")
def test_admin_login(self):
username='admin'
password='123'
Login().user_login(self.driver,username,password)
self.driver.quit()
def test_guest_login(self):
username='guest'
password='321'
Login().user_login(self.driver,username,password)
self.driver.quit()
LoginTest().test_admin_login()
LoginTest().test_guest_login()
2、通过定义数组的方式进行参数化
from selenium import webdriver
search_text=['python','中文','text']
for text in search_text:
driver=webdriver.Firefox()
driver.implicitly_wait(10)
driver.get("http://www.baidu.com")
driver.find_element_by_id('kw').send_keys(text)
driver.find_element_by_id('su').click()
driver.quit()
3、通过读取txt文件的方式进行参数化
python提供了以下读取txt文件的方法:
read():读取整个文件
readline():读取一行数据
readlines():读取所有行的数据
user_info.txt
zhangsan,123
lisi,456
wangwu,789
user_info.py
user_file=open('user_info.txt','r')
lines=user_file.readlines()
user_file.close()
for line in lines:
username=line.split(',')[0]
password=line.split(',')[1]
print(username,password)
4、 通过读取CSV文件的方式进行参数化
csv_read.py
import csv
date=csv.reader(open('info.csv','r'))
#循环输出每一行信息
for user in date:
print(user)
#循环输出第二列数据
for user in date:
print(user[1])
5、通过读取xml文件的方式进行参数化
info.xml
<?xml version="1.0" encoding="utf-8"?>
<info>
<base>
<platform>Windows</platform>
<browser>Firefox</browser>
<url>http://www.baidu.com</url>
<login username="admin" password="123456"/>
<login username="guest" password="654321"/>
</base>
<test>
<province>北京</province>
<province>广东</province>
<city>深圳</city>
<city>珠海</city>
<province>浙江</province>
<city>杭州</city>
</test>
</info>
from xml.dom import minidom
#打开xml文档
dom=minidom.parse('info.xml')
#得到文档元素对象
root=dom.documentElement
print(root.nodeName)
print(root.nodeValue)
print(root.nodeType)
print(root.ELEMENT_NODE)
#获得任意标签名
tagname=root.getElementsByTagName('browser')
print(tagname[0].tagName)
#获得标签的属性值
tagname=root.getElementsByTagName('login')
username=tagname[0].getAttribute("username")
print(username)
password=tagname[0].getAttribute("password")
print(password)
username=tagname[1].getAttribute("username")
print(username)
password=tagname[1].getAttribute("password")
print(password)
#获得标签对之间的数据
provinces=root.getElementsByTagName('province')
citys=root.getElementsByTagName('city')
p2=provinces[1].firstChild.data
c1=citys[0].firstChild.data
c2=citys[1].firstChild.data
print(p2)
print(c1)
print(c2)