#栗子

from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import Selectfrom selenium.common.exceptions import NoSuchElementExceptionfrom selenium.common.exceptions import NoAlertPresentExceptionimport unittest ,time,re

class BaiduTest(unittest.TestCase):    def setUp(self):        self.driver = webdriver.Chrome()        self.driver.implicitly_wait(30)        self.base_url = 'http://www.baidu.com/'        self.verificationErrors = []        self.accept_next_alert = True

    def test_baidu(self):        driver = self.driver        driver.get(self.base_url,'/')        driver.find_element(By.ID,'kw').clear()        driver.find_element(By.ID,'kw').send_keys('selenium ide')        driver.find_element(By.ID,'su').click()    def is_element_present(self,how,what):        try:            self.driver.find_element(by=how,value=what)        except NoSuchElementException as e:            return False        return True

    def is_alert_present(self):        try:            self.driver.switch_to_alert()        except NoAlertPresentException as e:            return False        return True    def close_alert_and_get_its_text(self):        try:            alert = self.driver.switch_to_alert()            alert_text = alert.text            if self.accept_next_alert:                alert.accept()            else:                alert.dismiss()            return alert_text        finally:            #表示是否继续接受下一个警告,初始化状态为 Ture            self.accept_next_alert = True

    def tearDown(self):        self.driver.quit()        self.assertEqual([],self.verificationErrors)if __name__ == '__main__':    unittest.main()

#栗子 
#用于判断素数def is_prime(n):    if n<=1:        return False    for i in range(2,n):        if n%i == 0:            return False    return True

import unittest

class Test(unittest.TestCase):    def setUp(self):        pass

    def test_case(self):        self.prime = is_prime(4)        self.assertTrue(self.prime,msg='Is not prime!!')

    def tearDown(self):        pass

if __name__ == '__main__':    unittest.main()

#结果  AssertionError: False is not true : Is not prime!!

#栗子 登录126 
from selenium import webdriverfrom selenium.webdriver.common.by import Byimport timeimport unittest

class TestLogin(unittest.TestCase):    def setUp(self):        self.driver = webdriver.Chrome()        self.driver.implicitly_wait(5)        self.base_url = 'http://mail.qq.com'        self.verificationErrors = []        self.accept_next_alert = True

    def test_login(self):        driver = self.driver        driver.get(self.base_url)

        #登录        if driver.find_element(By.CSS_SELECTOR, 'iframe#login_frame').is_displayed():            driver.switch_to.default_content()            driver.switch_to.frame(driver.find_element(By.CSS_SELECTOR, 'iframe#login_frame'))            driver.find_element(By.LINK_TEXT, '帐号密码登录').click()            driver.find_element(By.XPATH, ".//*[@id='u']").clear()            driver.find_element(By.XPATH, ".//*[@id='u']").send_keys('981094301@qq.com')            driver.find_element(By.XPATH, ".//*[@id='p']").clear()            driver.find_element(By.XPATH, ".//*[@id='p']").send_keys('9(zndxcpvsWWXX')            driver.find_element(By.CSS_SELECTOR, 'input#login_button').click()            # 获取断言信息进行断言            text = driver.find_element(By.ID, 'useraddr').text            self.assertEqual(text, '981094301@qq.com')            # 退出            time.sleep(2)            driver.find_element(By.LINK_TEXT, '退出').click()

    def tearDown(self):        self.driver.quit()        self.assertEqual([],self.verificationErrors)

if __name__ == '__main__':    unittest.main()【备注】一定要在主函数里执行,我最开始右键的地方就是test_函数,然后控制台就报错说找不到元素。所以,在哪里右键,就单独执行哪里

#栗子  


转载于:https://www.cnblogs.com/suren2017/p/8085449.html

【selenium2】【unittest】相关推荐

  1. 玩转Python必备:史上最全的Python库,【值得收藏,事半功倍】

    库名称     简介 Chardet字符编码探测器,可以自动检测文本.网页.xml的编码. colorama主要用来给文本添加各种颜色,并且非常简单易用. Prettytable主要用于在终端或浏览器 ...

  2. 吐血整理,2020年最新【阿里、头条、美团】【软件测试】面试题(持续更新!)

    通知:[公众号更名为:程序员臻叔] 关注领福利: 回复「测试」:获取最常用的测试用例模版+常用的测试工具. 回复「面试」:臻叔原创<测试岗笔面试真题宝典> 回复「简历」:送你臻叔私人珍藏的 ...

  3. 【快速上手mac必备】常用优质mac软件推荐(音视频、办公、软件开发、辅助工具、系统管理、云存储)

    本文章的主要内容是我作为一名大四学生.准程序员.up主这三种身份来给大家推荐一下 mac 上好用的软件以及工具.本人也是从去年9月份开始从windows阵营转移到了mac阵营,刚开始使用的时候,也曾主 ...

  4. 【bzoj 1833】【codevs 1359】 [ZJOI2010]count 数字计数(数位dp)

    1833: [ZJOI2010]count 数字计数 Time Limit: 3 Sec  Memory Limit: 64 MB Submit: 2774  Solved: 1230 [Submit ...

  5. 【C++自我精讲】基础系列二 const

    [C++自我精讲]基础系列二 const 0 前言 分三部分:const用法.const和#define比较.const作用. 1 const用法 const常量:const可以用来定义常量,不可改变 ...

  6. (四)Asp.net web api中的坑-【api的返回值】

    (四)Asp.net web api中的坑-[api的返回值] 原文:(四)Asp.net web api中的坑-[api的返回值] void无返回值 IHttpActionResult HttpRe ...

  7. 【C++】【九】栈的应用

    [C++][九]栈的应用 就近匹配原理及其步骤: 中缀转后缀:

  8. 【跃迁之路】【495天】程序员高效学习方法论探索系列(实验阶段252-2018.06.15)...

    @(跃迁之路)专栏 实验说明 从2017.10.6起,开启这个系列,目标只有一个:探索新的学习方法,实现跃迁式成长 实验期2年(2017.10.06 - 2019.10.06) 我将以自己为实验对象. ...

  9. (10)Spring Boot修改端口号【从零开始学Spring Boot】

    Spring boot 默认端口是8080,如果想要进行更改的话,只需要修改applicatoin.properties文件,在配置文件中加入: server.port=9090 常用配置: #### ...

  10. 【跃迁之路】【725天】程序员高效学习方法论探索系列(实验阶段482-2019.2.15)...

    实验说明 从2017.10.6起,开启这个系列,目标只有一个:探索新的学习方法,实现跃迁式成长 实验期2年(2017.10.06 - 2019.10.06) 我将以自己为实验对象. 我将开源我的学习方 ...

最新文章

  1. jQuery获取和设置元素
  2. mysql主从字符集不一致_MySQL多字节字符集造成主从数据不一致问题
  3. [网摘]关于产品运营
  4. 转 carrer 之感
  5. 万维网发布服务 w3svc 已停止 除非万维_万维网和互联网的区别
  6. 【官方速报】Pika3.0正式发布
  7. JSP内置 对象(下)
  8. java 降低jdk版本_jdk1.7降级到1.6 | 学步园
  9. Effective C++:改善程序与设计的55个具体做法:第3版 评注者序
  10. RHEL 5服务篇—LAMP平台的部署及应用
  11. 【Docker】在CentOS上安装
  12. 数据标准详细概述-2022
  13. 编译libfetion时,提示 从 int 到 QString 的转换有歧义
  14. 田申:《个人信息安全规范》的理解与初探
  15. OpenGL及GLUT---------------函数整理
  16. 北京智和信通企业级网络流量监控方案
  17. html火焰字效果,如何用PS制作火焰字特效
  18. 基于C++控制台(Windows平台)的一个吃豆人小游戏
  19. 数据库MySQL系统实操实验从安装系统到实际操作全过程,五万字系列五,这不直接学完去学校装杯?
  20. Oracle Database 11g Release 2认证支持的操作系统版本跨度很大

热门文章

  1. JavaScrip入门-浏览器里的js
  2. spoon kettle连接数据库失败解决方法
  3. quick-cocos2d-x开发环境Lua for IntelliJ IDEA的安装
  4. HTML5的未来 - HTML5 还能走多远?
  5. poj 3984 迷宫问题 BFS
  6. 禅道项目管理软件的命令行入口
  7. OpenCV中函数imread的参数flags的枚举值(可设置值)及其具体意义
  8. 用eclipse创建WebService Step by Step
  9. android aspectj 编译,Android AOP方案(一)——AspectJ
  10. c语言程序设计的反思,C语言程序设计教学反思.doc