import unittest

from selenium import webdriver

from selenium.webdriver.common.by import By

import unittest,time

from parameterized import parameterized

#安装 : pip install parameterized

#数据驱动模型

# ddt excel+ddt yaml+ddt txt+ddt

#@unpack 表示用来解压元组到多个参数

#应用:ui级别的自动化测试中可以实现编写一个测试用例实现多个不同的测试点验证

#例如在163邮箱登录页面中,存在多种测试情况,如用户名和密码为空,用户名为空密码不为空,密码为空用户名不为空返回的错误提示信息

class Mail_163(unittest.TestCase):

def setUp(self) -> None:

self.driver = webdriver.Chrome()

self.driver.maximize_window()

self.driver.implicitly_wait(5)

self.driver.get("https://mail.163.com/")

def tearDown(self) -> None:

self.driver.quit()

def login_163(self,username,password):

#验证登录163邮箱N中情况

self.driver.find_element(By.ID,"switchAccountLogin").click()

iframe = self.driver.find_element(By.TAG_NAME,'iframe')

self.driver.switch_to_frame(iframe)

self.driver.find_element(By.NAME,'email').send_keys(username)

self.driver.find_element(By.NAME,'password').send_keys(password)

time.sleep(1)

self.driver.find_element(By.ID,"dologin").click()

#只有一个列表,列表里面有元组

@parameterized.expand(

[('', '', '请输入帐号'),

('admin', '', '请输入密码'),

('', 'admin', '请输入帐号'),

('^^^', '', '帐号格式错误')])

def test_login(self,username,password,result):

#登录163 --异常处理

self.login_163(username,password)

time.sleep(2)

try:

divtext = self.driver.find_element(By.CSS_SELECTOR, 'div.ferrorhead').text

print("错误信息:", divtext)

self.assertEqual(divtext, result)

except Exception as msg:

print("断言失败{}".format(msg))

self.driver.switch_to_default_content()

if __name__ == '__main__':

unittest.main(verbosity=2)

python数据驱动登录_python之数据驱动ddt操作(方法三)相关推荐

  1. python用户登录_python用户登录系统

    本文实例为大家分享了用户登录系统python实现代码,供大家参考,具体内容如下 注意事项: 1.使用python3执行程序.按提示输入1或2,登录或退出程序 2.输入用户名后,如果用户名被锁定及无效用 ...

  2. python多用户登录_python 多用户登录

    原博文 2017-09-07 15:18 − Python多用户登录 需求 让用户输入用户名密码 认证成功后显示欢迎信息 输错三次后退出程序 可以支持多个用户登录 (提示,通过列表存多个账户信息) 用 ...

  3. python操作数据库的几种方法_python对mysql数据库操作的三种不同方式

    原标题:python对mysql数据库操作的三种不同方式 |转载自:博客园 |原文链接:http://www.cnblogs.com/mryrs/p/6951008.html 先要说一下,在这个暑期如 ...

  4. python 连通区域_python skimage 连通性区域检测方法

    python skimage 连通性区域检测方法 涉及到的函数为 import matplotlib.pyplot as plt from skimage import measure, color ...

  5. python输出偶数_Python 判断奇数偶数的方法

    Python 判断奇数偶数的方法 以下实例用于判断一个数字是否为奇数或偶数: # -*- coding: UTF-8 -*- # Filename : test.py # Python 判断奇数偶数 ...

  6. python bs4 安装_Python安装Bs4的多种方法

    安装方法一: ①进入python文件夹执行指令(前提是支持pip指令): pip3 install Beautifulsoup4 ②回车待安装完成,如果出现以下红框中内容,即代表安装成功 ③验证是否可 ...

  7. python color属性_Python中类的属性、方法及内置方法

    1.类的属性成员变量 对象的创建创建对象的过程称之为实例化,当一个对象被创建后,包含三个方面的特性对象聚丙属性和方法, 句柄用于区分不同的对象, 对象的属性和方法,与类中的成员变量和成员函数对应, o ...

  8. python 12306登录_Python 12306登陆详细分析及操作

    前面的话: 1.第一次尝试爬虫,登陆12306,有不足的地方,望大家留言告知,谢谢. 2.前面引入了一个requests模块,我不多说,大家都知道干啥的.还有config是我的一个配置文件,因为其中涉 ...

  9. python cookie使用_Python使用cookielib模块操作cookie的实例教程

    cookielib是一个自动处理cookies的模块,如果我们在使用爬虫等技术的时候需要保存cookie,那么cookielib会让你事半功倍!他最常见的搭档模块就是python下的urllib和re ...

最新文章

  1. eva每一集片尾曲是谁唱的_【跪求】EVA 18集片尾曲的歌手名,考验大家的听力~...
  2. CA ARCserve Backup系列(3)—安装代理(Linux篇)
  3. 青岛市教师职称计算机考试成绩查询系统,吴春雷
  4. REACT map dictionary
  5. win7如何为计算机添加用户名和密码,win7系统电脑,如何的设置共享,共享计算机的地用户名和密码怎样设置...
  6. data为long 怎么设置vue_vue--为什么data属性必须是一个函数
  7. Linux中的中断管理机制
  8. 特斯拉Model 3本周平均日产约900辆 7000辆周产量有望
  9. 取消对 null 指针“l”的引用。_彻底理解链表中为何使用二级指针或者一级指针的引用...
  10. maven常见问题处理(3-3)Gradle编译时下载依赖失败解决方法
  11. 2004-11-28+ 认识Duwamish 7.0(3)错误处理
  12. C#的变迁史 - C# 4.0 之线程安全集合篇
  13. codeigniter中base_url和site_url
  14. 加服务器虚拟机软件,服务器虚拟机软件
  15. ZENCART php随机调用数据库中标题和内容
  16. ElasticSearch分布式架构原理
  17. 群表示论之二面体群的不可约实表示的求法
  18. python树莓派3控制蜂鸣器_树莓派用蜂鸣器实现整点报时
  19. oracle 产品宣传片,史上最牛宣传片!河南的美已惊艳了世界!
  20. gcc编译部分编译选项

热门文章

  1. Date跟String类型之间的转换!
  2. screenX,clientX,pageX,offsetX,的区别
  3. HDU 5536 字典树
  4. Selenium2.0功能测试之唯一元素的定位
  5. 2016年ICT行业前瞻:竞合生态,牵着手 一起走
  6. Cocos2d-js-v3.2 在 mac 上配置环境以及编译到 Andorid 的注意事项(转)
  7. EDB*Plus的当前路径问题
  8. 趋势科技修复已遭利用的 Apex Central 0day
  9. 因使用五年前的老旧代码,Azure 容器险遭黑客接管,微软已修复
  10. 算捡漏么?我发现了一个值2万美金的 Facebook DOM XSS 漏洞