1)python 需要安装openpyxl支持包才能支持xml文件的读取
2)openpyxl里的load_workbook 方法可以读取xml文件,参数是文件名称
返回的是一个work_book,可以使用get_sheet_by_name获取某个sheet,使用循环把数据存进数组
3)读取例子
from openpyxl import load_workbook class ParseExcel(): def __init__(self,excelPath,sheetName): self.wb = load_workbook(excelPath) self.sheet = self.wb.get_sheet_by_name(sheetName) self.maxRowNun = self.sheet.max_row def getDataFromSheet(self): datalist = [] for i in self.sheet.rows[1:]: temlist = [] temlist.append(i[1].value) temlist.append(i[2].value) datalist.append(temlist) return datalist if __name__ == '__main__': excelPath='' sheetName='' pe = ParseExcel(excelPath,sheetName) li = pe.getDataFromSheet() for i in li: print(i[0])
4)数据驱动例子
import ddt import unittest from selenium import webdriver from selenium.webdriver.common.keys import Keys excelPath='' sheetName='' excel = ParseExcel(excelPath,sheetName) @ddt.ddt class TestCase(unittest.TestCase): def setup(self): self.driver = webdriver.Chrome() def teardown(self): self.driver.quit() def test_A(self): print("用例A") assert True @ddt.data( * excel.getDatasFromSheet())#( * 前后两空格相当于指针) def test_B(self,data): print("用例B") testdata, expected = tuple(data) self.driver.get('http://www.baidu.com') ele.self.driver.find_element_by_id("kw") ele.send_keys(testdata) ele.send_keys(Keys.ENTER) self.assertIn(expected ,self.driver.get_bage_source) if __name__ == '__main__': unittest.main()
4)新版的支持
def getDataFromSheet(self): datalist = [] for i in self.sheet: temlist = [] temlist.append(i[1].value) temlist.append(i[2].value) datalist.append(temlist) return datalist #新版去掉了sheet的rows和columns