一、Mail163数据如下:

二、Excel+ddt代码如下:

import xlrd
import unittest
from selenium import webdriver
from selenium.webdriver.common.by import By
from ddt import ddt,data,unpack
import time

#安装:pip install xlrd
#读取的数据存储在list表中
def readExcels():
table = xlrd.open_workbook('Mail163.xlsx','r')
sheet = table.sheet_by_index(0)
nrow = [] #定义空列表
for row in range(1,sheet.nrows): #从1-N行读取遍历数据
#sheet.row_values(1,0,2)从0-2列读取数据成列表
nrow.append(sheet.row_values(row,start_colx=0,end_colx=sheet.ncols))
return nrow
# print(readExcels())
#[['', '', '请输入账号'], ['admin', '', '请输入密码'], ['', 'admin', '请输入账号'], ['^^^^', '', '账号格式错误']]

@ddt
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()

def Assert_Text(self):
#断言 :文本断言
try:
divtext = self.driver.find_element(By.CSS_SELECTOR, 'div.ferrorhead').text
return divtext
except Exception as msg:
print("断言失败{}".format(msg))
self.driver.switch_to_default_content()

@data(*readExcels())
@unpack
def test_username_password_null(self,username,password,result):
'''验证:登录163邮箱 N中情况的错误信息提示'''
self.login_163(username,password)
self.assertEqual(self.Assert_Text(),result)

# def test_username_null(self):
# '''验证:用户名为空密码不为空的错误信息提示'''
# self.login_163(readusername(2),readpassword(2))
# self.assertEqual(self.Assert_Text(), readresult(2))
#
# def test_passwd_null(self):
# '''验证:用户名不为空密码为空的错误信息提示'''
# self.login_163(readusername(3), readpassword(3))
# self.assertEqual(self.Assert_Text(),readresult(3))
#
# def test_username_input_format(self):
# '''验证:用户名输入非法字符的错误信息提示'''
# self.login_163(readusername(4), readpassword(4))
# self.assertEqual(self.Assert_Text(), readresult(4))

if __name__ == '__main__':
unittest.main(verbosity=2) #详细日志信息

最新文章

  1. PYTHON 文件操作
  2. mysql列类型
  3. [matlab] MATLAB 界面编程 傻瓜教程
  4. paper 69:Haar-like矩形遍历检测窗口演示Matlab源代码[转载]
  5. SAP保存操作记录CDHDR和CDPOS表
  6. 使用phpstuby时,Apache或mysql无法启动,端口被占用
  7. BZOJ1680: [Usaco2005 Mar]Yogurt factory
  8. 了解webpack
  9. 切诺夫界证明(Chernoff bound)
  10. 1.1 Python是一种什么样的语言
  11. bash下常用快捷键
  12. 【算法】Bert预训练源码阅读
  13. 【XSY2962】作业 数学
  14. 转载 精进不休 .NET 4.0 (5) - C# 4.0 新特性之并行运算(Parallel) https://www.cnblogs.com/webabcd/archive/2010/06/03/1750449.html
  15. POJ 2027 - No Brainer
  16. 总结:C# 委托的全面理解
  17. java链表知识点总结
  18. MongoDB——环境搭建
  19. 公用表表达式 (CTE)、递归
  20. thrift使用小记

热门文章

  1. GPU端到端目标检测YOLOV3全过程(下)
  2. 深入理解java虚拟机笔记Chapter2
  3. Android adb的常用命令
  4. 四、配置及使用Zabbix监控系统
  5. 别再说Java对象都是在堆内存上分配空间的了!
  6. 「是时候升级Java11了」 JDK11优势和JDK选择
  7. 关于web移动端定位
  8. ClickHouse学习系列之六【访问权限和账户管理】
  9. 【Azure 事件中心】在Service Bus Explorer工具种查看到EventHub数据在分区中的各种属性问题
  10. 阿里云中quick bi用地图分析数据时维度需转换为地理区域类型