此篇是以下面的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开头实例的更多相关文章

  1. Objective-C语言介绍 、 Objc与C语言 、 面向对象编程 、 类和对象 、 属性和方法 、 属性和实例变量

    1 第一个OC控制台程序 1.1 问题 Xcode是苹果公司向开发人员提供的集成开发环境(非开源),用于开发Mac OS X,iOS的应用程序.其运行于苹果公司的Mac操作系统下. 本案例要求使用集成 ...

  2. Java-Runoob-高级教程-实例-方法:15. Java 实例 – 重载(overloading)方法中使用 Varargs

    ylbtech-Java-Runoob-高级教程-实例-方法:15. Java 实例 – 重载(overloading)方法中使用 Varargs 1.返回顶部 1. Java 实例 - 重载(ove ...

  3. Java-Runoob-高级教程-实例-方法:14. Java 实例 – Varargs 可变参数使用

    ylbtech-Java-Runoob-高级教程-实例-方法:14. Java 实例 – Varargs 可变参数使用 1.返回顶部 1. Java 实例 - Varargs 可变参数使用  Java ...

  4. Java-Runoob-高级教程-实例-方法:13. Java 实例 – for 和 foreach循环使用

    ylbtech-Java-Runoob-高级教程-实例-方法:13. Java 实例 – for 和 foreach循环使用 1.返回顶部 1. Java 实例 - for 和 foreach循环使用 ...

  5. Java-Runoob-高级教程-实例-方法:12. Java 实例 – Enum(枚举)构造函数及方法的使用-um

    ylbtech-Java-Runoob-高级教程-实例-方法:12. Java 实例 – Enum(枚举)构造函数及方法的使用 1.返回顶部 1. Java 实例 - Enum(枚举)构造函数及方法的 ...

  6. Java-Runoob-高级教程-实例-方法:11. Java 实例 – enum 和 switch 语句使用

    ylbtech-Java-Runoob-高级教程-实例-方法:11. Java 实例 – enum 和 switch 语句使用 1.返回顶部 1. Java 实例 - enum 和 switch 语句 ...

  7. Java-Runoob-高级教程-实例-方法:10. Java 实例 – 标签(Label)

    ylbtech-Java-Runoob-高级教程-实例-方法:10. Java 实例 – 标签(Label) 1.返回顶部 1. Java 实例 - 标签(Label)  Java 实例 Java 中 ...

  8. Java-Runoob-高级教程-实例-方法:09. Java 实例 – continue 关键字用法-un

    ylbtech-Java-Runoob-高级教程-实例-方法:09. Java 实例 – continue 关键字用法 1.返回顶部 1. Java 实例 - continue 关键字用法  Java ...

  9. Java-Runoob-高级教程-实例-方法:08. Java 实例 – break 关键字用法

    ylbtech-Java-Runoob-高级教程-实例-方法:08. Java 实例 – break 关键字用法 1.返回顶部 1. Java 实例 - break 关键字用法  Java 实例 Ja ...

随机推荐

  1. 深度学习Dropout技术分析

    深度学习Dropout技术分析 什么是Dropout? dropout是指在深度学习网络的训练过程中,对于神经网络单元,按照一定的概率将其暂时从网络中丢弃.注意是暂时,对于随机梯度下降来说,由于是随机 ...

  2. NVIDIA安培架构

    NVIDIA安培架构 NVIDIA Ampere Architecture In-Depth 在2020年英伟达GTC主题演讲中,英伟达创始人兼首席执行官黄仁勋介绍了基于新英伟达安培GPU架构的新英伟 ...

  3. 理解 this

    this this 取什么值是在函数执行的时候确认的,不是在函数定义的时候确认的 this 的不同应用场景,this 的指向 函数在调用时,js 会默认给 this 绑定一个值,this 的值与绑定方 ...

  4. 如果攻击者操控了 redirect_uri,会怎样?

    读者在看这篇文章之前,请先了解 Oauth2.0 的 Authorization Code 授权流程,可以看 Authorization Code 授权原理和实现方法 在 Token Enpoint ...

  5. 【NX二次开发】隐藏、显示对象UF_OBJ_set_blank_status

    隐藏.显示对象用UF_OBJ_set_blank_status() 查看对象显示情况用UF_OBJ_ask_display_properties() 效果: 源码: #include "Te ...

  6. Spring Cloud 和 Dubbo,到底用哪个好?

    Spring Cloud是http协议传输,带宽会比较多,同时使用http协议一般会使用JSON报文,消耗会更大 dubbo的开发难度较大,原因是dubbo的jar包依赖问题很多大型工程无法解决 sp ...

  7. Python-对比两个目录中Excel文件

    背景:我在5月20日收到了一批Excel文件数据,由于文件很多大约有将近5000个,已经通过编写python脚本处理完成.但是6月9日的时候,又收到了一批新的Excel数据.但是在处理过程中发现,本次 ...

  8. MySQL—Dos命令操作数据库

    MySQL 是一个关系型数据库,存在表的概念 结构,数据库可以存放多张表,每个表可以存放多个字段,每个字段可以存放多个记录 Dos命令操作数据库 PhpStudy使用终端打开数据库 第一次打开默认的密 ...

  9. Dockerfile优化方式

    如今GitHub 仓库中已经包含了成千上万的Dockerfile,但并不是所有的Dockerfile都是高效的.本文将从四个方面来介绍Dockerfile的最佳实践,以此来帮助大家编写更优雅的Dock ...

  10. AWS上的EFK环境部署

    1.准备工作及组件 本章使用自建服务以及aws服务来配置使用. 服务 版本 作用 filebeat 6.7.2→ 7.3.1 节点日志收集,只完成少量比如多行合并工作 logstash 6.4.2→7 ...