Unittest方法 -- 以test开头实例

此篇是以下面的test作为实战的 : Unittest方法 -- 项目实现自动发送邮件
1、test_01
import unittest
from selenium import webdriver
class BaiduLink(unittest.TestCase):
def setUp(self):
self.option = webdriver.ChromeOptions()
self.option.add_argument("headless")
self.driver = webdriver.Chrome(chrome_options=self.option)
self.driver.maximize_window()
self.driver.implicitly_wait(30)
self.driver.get("Http://www.baidu.com")
def tearDown(self):
self.driver.quit()
def test_baidu_news(self):
"""百度首页:点击新闻链接是否可正常跳转"""
self.driver.find_element_by_link_text("新闻").click()
self.assertEqual(self.driver.current_url,"http://news.baidu.com/")
def test_baidu_map(self):
"""百度首页:点击地图链接是否可正常跳转"""
self.driver.find_element_by_link_text("地图").click()
self.assertIn("https://map.baidu.com/",self.driver.current_url)
if __name__ == '__main__':
unittest.main(verbosity=2)
二、test_02
import unittest
from selenium import webdriver
class BaiduSo(unittest.TestCase):
def setUp(self):
self.option = webdriver.ChromeOptions()
self.option.add_argument("headless")
self.driver = webdriver.Chrome(chrome_options=self.option)
self.driver.maximize_window()
self.driver.implicitly_wait(30)
self.driver.get("Https://www.baidu.com/")
def tearDown(self):
self.driver.quit()
def test_baidu_so_enabled(self):
"""百度首页:百度首页输入框可编辑"""
so = self.driver.find_element_by_id("kw")
"""断言"""
self.assertTrue(so.is_enabled())
def test_baidu_so(self):
"""百度首页:测试百度有搜索功能"""
self.driver.find_element_by_id("kw").send_keys("selenium")
# so = send_key("selenium")
self.driver.find_element_by_id("su").click()
"""断言"""
# self.assertEqual(self.driver.find_element_by_id("kw").text, "selenium")
if __name__ == '__main__':
unittest.main(verbosity=2)
三、test_03
# coding=utf-8
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
import time
import unittest
class BlogTitle(unittest.TestCase):
def setUp(self):
self.option = webdriver.ChromeOptions()
self.option.add_argument("headless")
self.driver = webdriver.Chrome(chrome_options=self.option)
self.driver.get("https://www.cnblogs.com/Teachertao/")
self.driver.implicitly_wait(10)
def tearDown(self):
self.driver.quit()
def test_blog_01(self):
u"""验证元素title完全等于 Teacher涛 - 博客园"""
# time.sleep(3)
result = EC.title_is(u'Teacher涛 - 博客园')(self.driver)
# print(result())
self.assertTrue(result)
def test_blog_02(self):
u"""验证元素判断title包含Teacher"""
# time.sleep(3)
title = EC.title_contains("Teacher")(self.driver)
# print(title())
self.assertTrue(title)
if __name__ == "__main__":
unittest.main(verbosity=2)
四、test_04
from selenium import webdriver
import unittest
import time
class Blog(unittest.TestCase):
def setUp(self):
'''登录博客'''
self.option = webdriver.ChromeOptions()
self.option.add_argument("headless")
self.driver = webdriver.Chrome(chrome_options=self.option)
self.driver.get("https://passport.cnblogs.com/user/signin")
self.driver.implicitly_wait(10)
def login(self,username,passwd):
'''这里写了一个登录的方法,账号和密码参数化'''
self.driver.find_element_by_id("LoginName").send_keys(username)
self.driver.find_element_by_id("Password").send_keys(passwd)
self.driver.find_element_by_id("IsRemember").click()
self.driver.find_element_by_id("submitBtn").click()
time.sleep(3)
def is_login_sucess(self):
'''判断是否获取到登录账户名称'''
try:
text = self.driver.find_element("id","header_user_left").text
print(text)
return True
except:
return False
def test_login(self):
'''登录案例参考:账号,密码自己设置'''
self.login("xxx","xxx")
# 判断结果
result = self.is_login_sucess()
self.assertTrue(result)
def test_02(self):
u'''登录案例参考:账号,密码自己设置'''
self.login(u"xxxx", u"xxxx") # 调用登录方法
# 获取登录后的账号名称
text = self.driver.find_element_by_id("lnk_current_user").text
print(text)
# 断言实际结果与期望结果一致
self.assertEqual(text, u"xxx")
def tearDown(self):
self.driver.quit()
if __name__ == '__main__':
unittest.main()
五、test_05
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
import unittest
class BolgHome(unittest.TestCase):
u'''博客首页'''
@classmethod
def setUpClass(cls):
cls.option = webdriver.ChromeOptions()
cls.option.add_argument("headless")
cls.driver = webdriver.Chrome(chrome_options=cls.option)
url = "https://www.cnblogs.com/Teachertao/"
cls.driver.get(url)
cls.driver.implicitly_wait(30)
@classmethod
def tearDownClass(cls):
cls.driver.quit()
def test_01(self):
u'''验证元素存在:博客园'''
locator = ("id", "blog_nav_sitehome")
text = u"博客园"
result = EC.text_to_be_present_in_element(locator, text)(self.driver)
self.assertTrue(result)
def test_02(self):
u'''验证元素存在:首页'''
locator = ("id", "blog_nav_myhome")
text = u"首页"
result = EC.text_to_be_present_in_element(locator, text)(self.driver)
self.assertTrue(result)
def test_03(self):
u'''验证元素存在:发新随笔'''
locator = ("id","blog_nav_newpost")
text = u"发新随笔"
result = EC.text_to_be_present_in_element(locator,text)(self.driver)
self.assertTrue(result)
if __name__ == "__main__":
unittest.main()
Unittest方法 -- 以test开头实例的更多相关文章
- Objective-C语言介绍 、 Objc与C语言 、 面向对象编程 、 类和对象 、 属性和方法 、 属性和实例变量
1 第一个OC控制台程序 1.1 问题 Xcode是苹果公司向开发人员提供的集成开发环境(非开源),用于开发Mac OS X,iOS的应用程序.其运行于苹果公司的Mac操作系统下. 本案例要求使用集成 ...
- Java-Runoob-高级教程-实例-方法:15. Java 实例 – 重载(overloading)方法中使用 Varargs
ylbtech-Java-Runoob-高级教程-实例-方法:15. Java 实例 – 重载(overloading)方法中使用 Varargs 1.返回顶部 1. Java 实例 - 重载(ove ...
- Java-Runoob-高级教程-实例-方法:14. Java 实例 – Varargs 可变参数使用
ylbtech-Java-Runoob-高级教程-实例-方法:14. Java 实例 – Varargs 可变参数使用 1.返回顶部 1. Java 实例 - Varargs 可变参数使用 Java ...
- Java-Runoob-高级教程-实例-方法:13. Java 实例 – for 和 foreach循环使用
ylbtech-Java-Runoob-高级教程-实例-方法:13. Java 实例 – for 和 foreach循环使用 1.返回顶部 1. Java 实例 - for 和 foreach循环使用 ...
- Java-Runoob-高级教程-实例-方法:12. Java 实例 – Enum(枚举)构造函数及方法的使用-um
ylbtech-Java-Runoob-高级教程-实例-方法:12. Java 实例 – Enum(枚举)构造函数及方法的使用 1.返回顶部 1. Java 实例 - Enum(枚举)构造函数及方法的 ...
- Java-Runoob-高级教程-实例-方法:11. Java 实例 – enum 和 switch 语句使用
ylbtech-Java-Runoob-高级教程-实例-方法:11. Java 实例 – enum 和 switch 语句使用 1.返回顶部 1. Java 实例 - enum 和 switch 语句 ...
- Java-Runoob-高级教程-实例-方法:10. Java 实例 – 标签(Label)
ylbtech-Java-Runoob-高级教程-实例-方法:10. Java 实例 – 标签(Label) 1.返回顶部 1. Java 实例 - 标签(Label) Java 实例 Java 中 ...
- Java-Runoob-高级教程-实例-方法:09. Java 实例 – continue 关键字用法-un
ylbtech-Java-Runoob-高级教程-实例-方法:09. Java 实例 – continue 关键字用法 1.返回顶部 1. Java 实例 - continue 关键字用法 Java ...
- Java-Runoob-高级教程-实例-方法:08. Java 实例 – break 关键字用法
ylbtech-Java-Runoob-高级教程-实例-方法:08. Java 实例 – break 关键字用法 1.返回顶部 1. Java 实例 - break 关键字用法 Java 实例 Ja ...
随机推荐
- GPU编程和流式多处理器
GPU编程和流式多处理器 流式多处理器(SM)是运行CUDA内核的GPU的一部分.本章重点介绍SM的指令集功能. 流式多处理器(SM)是运行我们的CUDA内核的GPU的一部分.每个SM包含以下内容. ...
- SpringBoot——配置类实现WebMvcConfigurer接口来配置拦截器、view-controller、视图解析器等
目的:为了保留SpringBoot对SpringMVC自动配置,另外我们还想要做一些自己拓展的功能 如何做扩展? 以配置view-controller实现跳转为例: 原先在SpringMvc中我们写v ...
- NX二次开发-将3X3矩阵修正为正交且长度为单位长度的矩阵
函数:UF_MTX3_ortho_normalize() 函数说明:将矩阵修正为正交且xyz长度为单位长度的矩阵.下图中输入的矩阵为三条线段的端点,经过修正后,生成一个坐标系. 1 #include ...
- 【NX二次开发】设置了“附加包含目录”,还是提示“无法打开包括文件”的解决方法
项目属性中的"附加包含目录"路径完全正确,但是还是无法找到头文件: 这个问题我遇到过不止一次,纠结了很久,终于发现了解决方法: 改为: 问题解决! 分析原因:项目中的属性配置 与 ...
- 09:jQuery(02)
内容概要 jQuery操作标签 jQuery绑定事件 jQuery补充知识点 jQuery动画效果(了解) 零散补充 内容详细 jQuery练习题 $('#i1') r.fn.init [div#i1 ...
- csps前小结
冒着题没改完颓废被发现的风险来写博客 好像离csps只剩两天了,然而没啥感觉 最近考试有时考得还算可以,有时也会很炸 今天考试事实上心态啥崩,因为T1结论题一直没思路,想了一个小时连暴力都没打 过了一 ...
- Mysql优化(出自官方文档) - 第二篇
Mysql优化(出自官方文档) - 第二篇 目录 Mysql优化(出自官方文档) - 第二篇 1 关于Nested Loop Join的相关知识 1.1 相关概念和算法 1.2 一些优化 1 关于Ne ...
- .net core Redis消息队列中间件【InitQ】
前言 这是一篇拖更很久的博客,不知不觉InitQ在nuget下载量已经过15K了,奈何胸无点墨也不晓得怎么写(懒),随便在github上挂了个md,现在好好唠唠如何在redis里使用队列 队列缓存分布 ...
- Docker(39)- docker 实战二之安装 Tomcat
背景 参考了狂神老师的 Docker 教程,非常棒! https://www.bilibili.com/video/BV1og4y1q7M4?p=15 直接运行容器 本地找不到镜像会自动下载 --rm ...
- 为什么要使用MongoDB?
1.Mongo与Mysql简单对比 关系型数据库-MySQL 1.在不同的引擎上有不同的存储方式. 2.查询语句是使用传统的sql语句,拥有较为成熟的体系,成熟度很高. 3.开源数据库的份额在不断增加 ...