【selenium2】【unittest】
#栗子
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】相关推荐
- 玩转Python必备:史上最全的Python库,【值得收藏,事半功倍】
库名称 简介 Chardet字符编码探测器,可以自动检测文本.网页.xml的编码. colorama主要用来给文本添加各种颜色,并且非常简单易用. Prettytable主要用于在终端或浏览器 ...
- 吐血整理,2020年最新【阿里、头条、美团】【软件测试】面试题(持续更新!)
通知:[公众号更名为:程序员臻叔] 关注领福利: 回复「测试」:获取最常用的测试用例模版+常用的测试工具. 回复「面试」:臻叔原创<测试岗笔面试真题宝典> 回复「简历」:送你臻叔私人珍藏的 ...
- 【快速上手mac必备】常用优质mac软件推荐(音视频、办公、软件开发、辅助工具、系统管理、云存储)
本文章的主要内容是我作为一名大四学生.准程序员.up主这三种身份来给大家推荐一下 mac 上好用的软件以及工具.本人也是从去年9月份开始从windows阵营转移到了mac阵营,刚开始使用的时候,也曾主 ...
- 【bzoj 1833】【codevs 1359】 [ZJOI2010]count 数字计数(数位dp)
1833: [ZJOI2010]count 数字计数 Time Limit: 3 Sec Memory Limit: 64 MB Submit: 2774 Solved: 1230 [Submit ...
- 【C++自我精讲】基础系列二 const
[C++自我精讲]基础系列二 const 0 前言 分三部分:const用法.const和#define比较.const作用. 1 const用法 const常量:const可以用来定义常量,不可改变 ...
- (四)Asp.net web api中的坑-【api的返回值】
(四)Asp.net web api中的坑-[api的返回值] 原文:(四)Asp.net web api中的坑-[api的返回值] void无返回值 IHttpActionResult HttpRe ...
- 【C++】【九】栈的应用
[C++][九]栈的应用 就近匹配原理及其步骤: 中缀转后缀:
- 【跃迁之路】【495天】程序员高效学习方法论探索系列(实验阶段252-2018.06.15)...
@(跃迁之路)专栏 实验说明 从2017.10.6起,开启这个系列,目标只有一个:探索新的学习方法,实现跃迁式成长 实验期2年(2017.10.06 - 2019.10.06) 我将以自己为实验对象. ...
- (10)Spring Boot修改端口号【从零开始学Spring Boot】
Spring boot 默认端口是8080,如果想要进行更改的话,只需要修改applicatoin.properties文件,在配置文件中加入: server.port=9090 常用配置: #### ...
- 【跃迁之路】【725天】程序员高效学习方法论探索系列(实验阶段482-2019.2.15)...
实验说明 从2017.10.6起,开启这个系列,目标只有一个:探索新的学习方法,实现跃迁式成长 实验期2年(2017.10.06 - 2019.10.06) 我将以自己为实验对象. 我将开源我的学习方 ...
最新文章
- jQuery获取和设置元素
- mysql主从字符集不一致_MySQL多字节字符集造成主从数据不一致问题
- [网摘]关于产品运营
- 转 carrer 之感
- 万维网发布服务 w3svc 已停止 除非万维_万维网和互联网的区别
- 【官方速报】Pika3.0正式发布
- JSP内置 对象(下)
- java 降低jdk版本_jdk1.7降级到1.6 | 学步园
- Effective C++:改善程序与设计的55个具体做法:第3版 评注者序
- RHEL 5服务篇—LAMP平台的部署及应用
- 【Docker】在CentOS上安装
- 数据标准详细概述-2022
- 编译libfetion时,提示 从 int 到 QString 的转换有歧义
- 田申:《个人信息安全规范》的理解与初探
- OpenGL及GLUT---------------函数整理
- 北京智和信通企业级网络流量监控方案
- html火焰字效果,如何用PS制作火焰字特效
- 基于C++控制台(Windows平台)的一个吃豆人小游戏
- 数据库MySQL系统实操实验从安装系统到实际操作全过程,五万字系列五,这不直接学完去学校装杯?
- Oracle Database 11g Release 2认证支持的操作系统版本跨度很大
热门文章
- JavaScrip入门-浏览器里的js
- spoon kettle连接数据库失败解决方法
- quick-cocos2d-x开发环境Lua for IntelliJ IDEA的安装
- HTML5的未来 - HTML5 还能走多远?
- poj 3984 迷宫问题 BFS
- 禅道项目管理软件的命令行入口
- OpenCV中函数imread的参数flags的枚举值(可设置值)及其具体意义
- 用eclipse创建WebService Step by Step
- android aspectj 编译,Android AOP方案(一)——AspectJ
- c语言程序设计的反思,C语言程序设计教学反思.doc