UI自动化Selenium 数据驱动读取Excel

本文介绍了如何使用Selenium进行自动化测试,通过Excel数据驱动,详细展示了如何读取Excel数据并结合unittest和ddt框架进行操作,确保自动化脚本与数据表保持同步。
摘要由CSDN通过智能技术生成

selenium 自动化,希望通过Excel进行数据驱动;

即代码自动读取并循环所有数据;

如下为Excel读取封装的函数

# Excel数据读取
def ExcelRead(filename, sheetname):
    # current_path = os.getcwd()
    current_path = "D:\WORK\自动化\pythonselenium"
    path = os.path.join(current_path, 'data')
    file = path + r"\\" + filename
    print(file)
    datafile = xlrd.open_workbook(path + '/' + filename)   #打开Excel
    sheet = datafile.sheet_by_name(sheetname)  #按Sheet页名称打开Sheet
    # 获得列表行数
    rows = sheet.nrows
    # 获得列表列数
    cols = sheet.ncols

    # 将列头存储到list
    listTitle = sheet.row_values(0)

    # 获得某列的索引
    # listTitle.index('tenantName')

    # 将数据存储到list
    i = 1
    listData = []
    while i < rows:
        listData.append(sheet.row_values(i))
        i = i + 1
    return listData

下面为具体调用实现:结合unittest框架和ddt数据驱动框架使用

import unittest
from ddt import ddt, data

@ddt
class Suite_Test(unittest.TestCase):
    @data(*ExcelRead('Test.xls', 'ERP和数见'))  
    def test_应用授权(self, data):
        url, tenantName, user, pwd, system = tuple(data) # 将元组数据读取并按顺序存储到变量中;此处变量和Excel中列头保持一致;
        self.dr = newDriver(url)
        driver = self.dr
        driver.maxWindow()
        # 可直接使用变量
        driver.inputElement2("tenantName", tenantName, By.NAME)
        driver.inputElement2("user", user, By.NAME)
        driver.inputElement2("pwd", pwd, By.NAME)
        driver.elementClick2("submit", By.NAME)

tuple读取后,存储为键值对

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值