当前位置: 首页 > article >正文

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

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读取后,存储为键值对


http://www.kler.cn/a/160654.html

相关文章:

  • C语言 | Leetcode C语言题解之第557题反转字符串中的单词III
  • WebAssembly在现代Web开发中的应用
  • JFROG相关API
  • HTML之表单学习记录
  • 文献解读-DNAscope: High accuracy small variant calling using machine learning
  • 2019年下半年试题二:论软件系统架构评估及其应用
  • java面试题-ArrayList 和 LinkedList 的区别是什么
  • WebStorm:Mac/Win上强大的JavaScript开发工具
  • 第十一节HarmonyOS 常用容器组件2-List和Grid
  • Linux学习笔记3 xshell(lnmp)
  • Harmony OS (eTS语言)的起源和演进
  • Android12蓝牙框架
  • 如何在Spring Boot中优雅地重试调用第三方API?
  • BearPi Std 板从入门到放弃 - 引气入体篇(8)(ADC)
  • 第三方支付通道的优势之(二)-----代扣
  • 【C++】时间time库
  • Stm32_串口的帧(不定长)数据接收
  • 在Linux系统中更换yum源为阿里云
  • postgreSql存储jsonb
  • GitLab发展史,这一篇你知道就够了
  • sqlite - sqlite3_exec - c++回调函数的处理
  • 要求CHATGPT高质量回答的艺术:提示工程技术的完整指南—第 14 章:受控生成提示
  • 浅谈web性能测试
  • Python实现FA萤火虫优化算法优化XGBoost分类模型(XGBClassifier算法)项目实战
  • 深度学习——第2章 深度学习开发环境搭建
  • Centos7安装GItLab(在线版)