一、csv读取.
import csv #导入csv文件
def readcsv(): #创建一个方法来装
path=r"C:\Users\Administrator\Desktop\data.csv"
stream=open(path,'r',encoding='utf-8') #文件以只读形式打开
data=csv.reader(stream) #数据格式转换
list=[] #读取的数据放入list
i=0 #使用for循环读取数据
for row in data:
if i!=0:
list.append(row)
i=i+1
return list #返回值再list
if __name__ == '__main__':
data=readcsv()
for row in data:
print(row) #打出返回值
二、数据驱动
from selenium import webdriver
import ddt
import unittest
from a import readcsv
@ddt.ddt
class testceshi(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.get('http://192.168.30.253/bsams/front/login.do')
self.driver.maximize_window()
self.driver.implicitly_wait(30)
def tearDown(self):
self.driver.close()
stream_info=readcsv()
@ddt.data(*stream_info)
def test_1(self,list):
self.driver.find_element_by_id('taskId').send_keys('4')
self.driver.find_element_by_id('loginName').send_keys('031kka')
self.driver.find_element_by_name('password').send_keys('031kka')
self.driver.find_element_by_id('vericode').send_keys('shtd')
self.driver.find_element_by_class_name('dl-button').click()
self.driver.find_element_by_link_text('部门管理').click()
self.driver.find_element_by_xpath('/html/body/div[2]/div/div[2]/div[2]/div[1]/div/input').click()
self.driver.find_element_by_xpath('//*[@id="title"]').send_keys(list[1])
self.driver.find_element_by_css_selector('#code').send_keys(list[0])
self.driver.find_element_by_class_name('close-button').click()
if __name__ == '__main__':
unittest.main
三、相应断言
from selenium import webdriver
import ddt
import unittest
from a import readcsv
import time
@ddt.ddt
class testceshi(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.get('http://192.168.30.253/bsams/front/login.do')
self.driver.maximize_window()
self.driver.implicitly_wait(30)
def tearDown(self):
self.driver.close()
stream_info=readcsv()
@ddt.data(*stream_info)
def test_1(self,list):
try:
self.driver.find_element_by_id('taskId').send_keys('4')
self.driver.find_element_by_id('loginName').send_keys('031kka')
self.driver.find_element_by_name('password').send_keys('031kka')
self.driver.find_element_by_id('vericode').send_keys('shtd')
self.driver.find_element_by_class_name('dl-button').click()
self.driver.find_element_by_link_text('部门管理').click()
self.driver.find_element_by_xpath('/html/body/div[2]/div/div[2]/div[2]/div[1]/div/input').click()
self.driver.find_element_by_xpath('//*[@id="title"]').send_keys(list[1])
self.driver.find_element_by_css_selector('#code').send_keys(list[0])
self.driver.find_element_by_class_name('close-button').click()
b=self.driver.switch_to.alert
print(b.text)
except:
self.assertAlmostEqual(b,list[2])
if __name__ == '__main__':
unittest.main
说明:
读取csv文件时pychrom中的代码文件名为b
数据驱动:
响应断言:
我这里遇到selenium之alert弹框处理:
driver.switch_to。alert.text() #获取文本框内容
driver.switch_to。alert.accept() #相当于弹框中的确认
driver.switch_to。alert.dismiss() #相当于弹框中的取消