此篇是以下面的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. Springboot-Redis分布式锁 -----StringRedisTemplate

    这里引用别人, 用来自己回忆 https://blog.csdn.net/jack_shuai/article/details/91986690 https://www.cnblogs.com/mox ...

  2. IOS小组件(8):App与Widget数据共享

    引言   Widget是一个迷你版的App,IOS有沙盒机制,不同App之间无法直接共享数据.组件和主App之间其实就是不同App的关系,所以也无法通过userdefaults.standard来传数 ...

  3. 剑指 Offer 06. 从尾到头打印链表

    链接:https://leetcode-cn.com/problems/cong-wei-dao-tou-da-yin-lian-biao-lcof/ 标签:链表 题目 输入一个链表的头节点,从尾到头 ...

  4. P1123 取数游戏

    题目描述 一个N \times MN×M的由非负整数构成的数字矩阵,你需要在其中取出若干个数字,使得取出的任意两个数字不相邻(若一个数字在另外一个数字相邻88个格子中的一个即认为这两个数字相邻),求取 ...

  5. 八、配置Tomcat日志

    [root@svr5 ~]# vim /usr/local/tomcat/conf/server.xml .. .. <Host name="www.a.com" appBa ...

  6. Jenkins 进阶篇 - 数据备份

    随着我们的长期使用,Jenkins 系统中的内容会越来越多,特别是一些配置相关的东西,不能有任何丢失.这个时候我们就需要定期备份我们的 Jenkins 系统,避免一些误操作不小心删除了某些重要文件,J ...

  7. [源码解析] 深度学习分布式训练框架 horovod (5) --- 融合框架

    [源码解析] 深度学习分布式训练框架 horovod (5) --- 融合框架 目录 [源码解析] 深度学习分布式训练框架 horovod (5) --- 融合框架 0x00 摘要 0x01 架构图 ...

  8. SQL 查询语句总是先执行 SELECT?你们都错了

    很多 SQL 查询都是以 SELECT 开始的.不过,最近我跟别人解释什么是窗口函数,我在网上搜索"是否可以对窗口函数返回的结果进行过滤"这个问题,得出的结论是"窗口函数 ...

  9. Vue(9)购物车练习

    购物车案例 经过一系列的学习,我们这里来练习一个购物车的案例   需求:使用vue写一个表单页面,页面上有购买的数量,点击按钮+或者-,可以增加或减少购物车的数量,数量最少不得少于0,点击移除按钮,会 ...

  10. 如何在国产龙芯架构平台上运行c/c++、java、nodejs等编程语言

    高能预警:本文内容过于硬核,涉及编译器原理.cpu指令集.机器码.编程语言原理.跨平台原理等计算机专业基础知识,建议具有c.c++.java.nodejs等多种编程语言开发能力,且实战经验丰富的资深开 ...