python web自动化实现登录多次 利用ddt数据驱动读取账号信息

2023-11-08

web自动化实现多个用户登录某系统,使用python代码实现

首先创建读取测试数据的方法,代码如下:

import unittest
from time import sleep
from ddt import ddt, data   #引入ddt驱动
from selenium import webdriver
from xlrd import open_workbook    #引入读取Excel文件的标准库
import baseconfig as fp   # 公共读取本地路径方法
xlsfile = fp.basedir + '\\a_ddt\\RunList.xlsx'
#该方法可以独立封装,在这里调用
def getExcelTestData():
    openExcelFile = open_workbook(xlsfile)
    # 打开Excel文件
    getSheet = openExcelFile.sheet_by_name("Sheet2")
    # 获取工作表
    rowNumber = getSheet.nrows
    # 获取行数
    dataList = []
    # 数据List
    for i in range(1, rowNumber):
        # 从第二行开始遍历
        dataList.append(getSheet.row_values(i))
        # print("数据:"+str(dataList))
        # 把每个单元格的数值存放到dataList中
    return dataList
@ddt
class LoginPortal(unittest.TestCase):

    def setUp(self):
        self.driver = webdriver.Chrome()
        self.base_url = "你要访问系统的地址"
        self.driver.get(self.base_url)
        self.driver.maximize_window()
        sleep(3)

    @data(*getExcelTestData())
    # 传递数据
    def test_loginPortal(self, data):
        #Excel中的入参
        userName, adminId,password,checkTxt = tuple(data)  #checkTxt 该参数为Excel的预期结果
        # searchTerm = tuple(data)
        driver = self.driver
        driver.find_element_by_id('username').send_keys(userName)
        driver.find_element_by_id('oprId').send_keys(adminId)
        driver.find_element_by_id('passwdDiv_ocx').send_keys(password)
        driver.find_element_by_id('loginBtn').click()
        sleep(3)
        # responseText = driver.find_element_by_id("queryList").text
        responseText = driver.find_element_by_link_text("账户首页").text
        print(responseText)
        self.assertEqual(responseText, checkTxt) # 页面元素与Excel预期结果是否匹配

        print('登录成功,我将休息3s后退出....')

    def tearDown(self):
        self.driver.close()
        self.driver.quit()

if __name__ == '__main__':
    unittest.main()

我们看下Excel的内容:

运行结果:

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python web自动化实现登录多次 利用ddt数据驱动读取账号信息 的相关文章

  • Matplotlib 标准化颜色条 (Python)

    我正在尝试使用 matplotlib 当然还有 numpy 绘制轮廓图 它有效 它绘制了它应该绘制的内容 但不幸的是我无法设置颜色条范围 问题是我有很多图 并且需要所有图都具有相同的颜色条 相同的最小值和最大值 相同的颜色 我复制并粘贴了在
  • 打印 scrapy 请求的“响应”

    我正在尝试学习 scrapy 在遵循教程的同时 我正在尝试进行细微的调整 我想简单地从请求中获取响应内容 然后我会将响应传递到教程代码中 但我无法发出请求并获取响应内容 建议就好 from scrapy http import Respon
  • 如何在 Ubuntu 上安装 Python 模块

    我刚刚用Python写了一个函数 然后 我想将其做成模块并安装在我的 Ubuntu 11 04 上 这就是我所做的 创建 setup py 和 function py 文件 使用 Python2 7 setup py sdist 构建分发文
  • 如何更改充当按钮的范围的文本

    我正在为自定义 Web 应用程序编写自动化测试 我遇到了无法更改跨度文本的问题 我尝试过使用 driver execute script 但没有运气 如果我更好地了解 javascript 这确实会有帮助 据我所知 您无法单击跨度 并且列表
  • Dask DataFrame 的逐行处理

    我需要处理一个大文件并更改一些值 我想做这样的事情 for index row in dataFrame iterrows foo doSomeStuffWith row lol doOtherStuffWith row dataFrame
  • 类属性在功能上依赖于其他类属性

    我正在尝试使用静态类属性来定义另一个静态类属性 我认为可以通过以下代码来实现 f lambda s s 1 class A foo foo bar f A foo 然而 这导致NameError name A is not defined
  • NLTK、搭配问题:需要解包的值太多(预期为 2)

    我尝试使用 NLTK 检索搭配 但出现错误 我使用内置的古腾堡语料库 I wrote alice nltk corpus gutenberg fileids 7 al nltk corpus gutenberg words alice al
  • 无法包含外部 pandas 文档 Pycharm v--2018.1.2

    我无法包含外部 pandas 文档Pycharm v 2018 1 2 例如 numpy gt http docs scipy org doc numpy reference generated module name element na
  • CSS 和 XPath 选择器有什么区别?就跨浏览器测试的性能而言,哪个更好?

    我正在与硒网络驱动程序 https en wikipedia org wiki Selenium software Selenium WebDriver2 25 0 在多语言 Web 应用程序上 主要测试页面内容 针对不同语言 如阿拉伯语
  • 唯一的图像哈希值即使 EXIF 信息更新也不会改变

    我正在寻找一种方法来为 python 和 php 中的图像创建唯一的哈希值 我考虑过对原始文件使用 md5 和 因为它们可以快速生成 但是当我更新 EXIF 信息 有时时区关闭 时 它会更改总和 并且哈希也会更改 有没有其他方法可以为这些文
  • Pandas:根据列名进行列的成对乘法

    我有以下数据框 gt gt gt df pd DataFrame ap1 X 1 2 3 4 as1 X 1 2 3 4 ap2 X 2 2 2 2 as2 X 3 3 3 3 gt gt gt df ap1 X as1 X ap2 X a
  • 字典的嵌套列表

    我正在尝试创建dict通过嵌套list groups Group1 A B Group2 C D L y x 0 for y in x if y x 0 for x in groups d k v for d in L for k v in
  • 使用 python 将文本发送到带有逗号分隔符的列

    如何使用分隔符 在 Excel 中将一列分成两列 并使用 python 命名标题 这是我的代码 import openpyxl w openpyxl load workbook DDdata xlsx active w active a a
  • 负整数的Python表示

    gt gt gt x 4 gt gt gt print b format x x 4 100 gt gt gt mask 0xFFFFFFFF gt gt gt print b format x mask x mask 4294967292
  • 检查 Ruby 上的浏览​​器控制台输出

    如何检查浏览器控制台是否有错误 例如 我用 Selenium 启动了浏览器 firefox 的 chrome 并且用 Selenium WebDriver 做了一些操作 之后我想知道网络控制台中是否有任何错误 我尝试接受控制台错误 例如 d
  • python中的sys.stdin.fileno()是什么

    如果这是非常基本的或之前已经问过的 我很抱歉 我用谷歌搜索但找不到简单且令人满意的解释 我想知道什么sys stdin fileno is 我在代码中看到了它 但不明白它的作用 这是实际的代码块 fileno sys stdin filen
  • 是否可以写一个负的python类型注释

    这可能听起来不合理 但现在我需要否定类型注释 我的意思是这样的 an int Not Iterable a string Iterable 这是因为我为一个函数编写了一个重载 而 mypy 不理解我 我的功能看起来像这样 overload
  • Scrapy 蜘蛛无法工作

    由于到目前为止没有任何效果 我开始了一个新项目 python scrapy ctl py startproject Nu 我完全按照教程操作 创建了文件夹和一个新的蜘蛛 from scrapy contrib spiders import
  • 将 Scikit-Learn OneHotEncoder 与 Pandas DataFrame 结合使用

    我正在尝试使用 Scikit Learn 的 OneHotEncoder 将 Pandas DataFrame 中包含字符串的列替换为 one hot 编码的等效项 我的下面的代码不起作用 from sklearn preprocessin
  • 具有指定置信区间的 Seaborn 条形图

    我想在 Seaborn 条形图上绘制置信区间 但我已经计算出置信区间 如何让 Seaborn 绘制我的置信区间而不是尝试自行计算它们 例如 假设我有以下 pandas DataFrame x pd DataFrame Group 1 0 5

随机推荐

  • 【专题5: 硬件设计】 之 【61.案例四:简易空气净化器,使用硬件产生PWM波并对马达调速】

    嵌入式工程师成长之路 系列文章 总目录 系列文章总目录 希望本是无所谓有 无所谓无的 这正如脚下的路 其实地上本没有路 走的人多了 也便成了路 原创不易 文章会持续更新 欢迎微信扫码关注公众号 承接 小程序 嵌入式 PC端项目开发 联系作者
  • ssh: Could not resolve hostname d: Name or service not known

    ssh Could not resolve hostname d Name or service not known Windows下载Linux服务器文件 除了使用XShell中Xftp或者winscp等其他图形化界面软件外 还可使用类似
  • ST表初识(C++)

    ST表 Sparse Table 稀疏表 一种数据结构 主要用来解决静态的区间最大 最小值问题 主要思想 倍增思想 在看ST表之前 先看一个问题 2 4 1 5 3 在这个序列中找出区间 1 3 3 5 1 5 max 1 3 4 max
  • Krpano全景制作使用笔记

    目录 一 前言 二 软件下载安装 三 软件使用 1 软件文件夹说明 1 docu文件夹 2 templates文件夹 3 viewer文件夹 4 droplet bat文件 a MAKE PANO NORMAL Droplet bat b
  • 5.docker可视化工具(Portainer)

    本文操作 在 192 168 204 102 机器执行 安装最新版 portainer 请使用 portainer portainer ce 镜像 图片来源 https hub docker com r portainer portaine
  • 02搭建Spark单机环境2

    目录 一 在三台虚拟机上面安装lrzsz 二 在三台虚拟机上安装配置jdk 三 配置完全分布模式Hadoop 配置文件 hdfs site xml 配置文件 mapred site xml 配置文件 yarn site xml 四 格式化与
  • [Java初学] 第一次作业 hello.java直接调用同根目录下的其他类 A.java 、B.java、C.java

    hello java public class hello public static void main String args System out println 您好 只需编译我 A a new A a fA B b new B b
  • Zookeeper与kafka

    zookeeper概述 Zookeeperl是一个开源的分布式的 为分布式框架提供协调服务的Apache项目 Zookeeper 工作机制 zookeeper从设计模式角度来理解 是一个基于观察者模式设计的分布式服务管理框架 它负责存储和管
  • win8下找到计算器并转换为程序员模式

    最近想用计算器的十进制和十六进制转化的功能 发现win8没有开始菜单了 从网上查了查 原来指令如此简单 特此做笔记 谨防忘记 操作 win r打开运行 输入calc 确定就出来了 首先看到的界面是 然后我们点击查看 程序员 就变成了 这样我
  • 关于哈工大操作系统实验三出现 task[0] trying to sleep 的解决方法

    问题 最近做哈工大操作系统实验三时明明代码没写错但是执行 run后出现以下情况 原因和解决方法 再各种比对和研究下发现这个问题原因在于加载文件系统的setup不能放在进程0里 不然会导致进程0休眠 可是别人并没有出现这个情况 尝试了网上很多
  • Kafka C++客户端库librdkafka笔记

    目录 目录 1 1 前言 2 2 缩略语 2 3 配置和主题 3 3 1 配置和主题结构 3 3 1 1 Conf 3 3 1 2 ConfImpl 3 3 1 3 Topic 3 3 1 4 TopicImpl 3 4 线程 4 5 消费
  • 工具URL

    流程图 画图工具 https www processon com
  • java 实现TCP和UDP的底层

    JAVA Socket 底层是怎样基于TCP IP 实现的 图片 2012 08 09 22 54 35 标签 java socket连接分类 JavaSE 首先必须明确 TCP IP模型中有四层结构 应用层 Application Lay
  • 在CentOS8中安装PHP8.0

    我的系统版本 cat etc redhat release 1 下载PHP安装文件 网址 https downloads php net pollita wget https downloads php net pollita php 8
  • 论文笔记:Temporal Regularized Matrix Factorization forHigh-dimensional Time Series Prediction

    0 摘要 时间序列预测问题在现代应用中变得越来越高维 如气候学和需求预测 例如 在需求预测中 项目数量可能高达50 000个 此外 数据通常是嘈杂的 充满缺失值 因此 现代应用程序需要高度可伸缩的方法 并且能够处理损坏或丢失值的噪声数据 然
  • 小程序下拉加载更多数据

    1 功能介绍 1 1 简单列表分页 功能描述 拖动下拉条 可以加载更多内容 1 1 1 实现步骤 1 1 1 1 配置 json文件 1 在app json页面配置 enablePullDownRefresh true 这会让下拉刷新效果适
  • STL 中查找算法使用总结

    顺序查找元素 find 头文件 包含在头文件 include 中 算法作用 使用 操作符 从给定的区间中查找和指定元素值相等的第一个元素 返回其迭代器 适用容器 适用于所有的序列容器 代码示例 vector
  • java 使用RabbitMQ示例

    RabbitMQ简介 RabbitMQ是一个受欢迎的消息代理 通常用于应用程序之间或者程序的不同组件之间通过消息来进行集成 具有高可用高并发的优点 适合集群服务器 采用 Erlang实现 对主要的编程语言都有客户端支持 RabbitMQ环境
  • java的JVM与垃圾回收机制

    核心机制 Java虚拟机 JVM是一个虚拟的计算机 具有指令集并使用不同的存储区域 负责执行指 令 管理数据 内存 寄存器 对于不同的平台 有不同的虚拟机 只有某平台提供了对应的java虚拟机 java程序才可在此平台运行 Java虚拟机机
  • python web自动化实现登录多次 利用ddt数据驱动读取账号信息

    web自动化实现多个用户登录某系统 使用python代码实现 首先创建读取测试数据的方法 代码如下 import unittest from time import sleep from ddt import ddt data 引入ddt驱