selenium+python笔记3

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
@desc:学习unittest的用法
注意setUp/setUpClass,tearDown/tearDownClass的区别
① setUp():每个测试函数运行前运行
② tearDown():每个测试函数运行完后执行
③ setUpClass():必须使用@classmethod 装饰器,所有test运行前运行一次
④ tearDownClass():必须使用@classmethod装饰器,所有test运行完后运行一次unittest还有一些不常用的装饰器:
@unittest.skip(reason):无条件跳过测试,reason描述为什么跳过测试
@unittest.skipif(conditition,reason):condititon为true时跳过测试
@unittest.skipunless(condition,reason):condition不是true时跳过测试
@unittest.expectedFailure:如果test失败了,这个test不计入失败的case数目
"""
import unittest
import time
from selenium import webdriverclass SearchTest(unittest.TestCase):@classmethoddef setUpClass(cls):cls.driver = webdriver.Firefox()cls.driver.implicitly_wait(30)cls.driver.maximize_window()cls.base_url = "http://www.baidu.com"cls.driver.get(cls.base_url + "/")cls.search_text = cls.driver.find_element_by_id("kw")cls.search_btn = cls.driver.find_element_by_id("su")def test_search_btn_displayed(self):self.assertTrue(self.search_btn.is_displayed())self.assertTrue(self.search_btn.is_enabled())def test_search_text_maxlength(self):max_length = self.search_text.get_attribute("maxlength")self.assertEqual("255", max_length)def test_search(self):self.search_text.clear()self.search_text.send_keys("unittest")self.search_btn.click()time.sleep(2)title = self.driver.titleself.assertEqual(title, u"unittest_百度搜索")@classmethoddef tearDownClass(cls):# close the browser window
        cls.driver.quit()if __name__ == '__main__':unittest.main(verbosity=3)

 

转载于:https://www.cnblogs.com/kuihua/p/5507723.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/287743.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【学生选课系统经典】C#与SQLSERVER连接:ASP.NET网站(服务器端,IIS发布)

实验任务描述 1 用C#访问SQLSERVER数据库(两种安全模式); 2 用C#完成数据库指定表上的数据显示; 3 用C#完成数据库指定表上的数据插入、删除和更新; 4 用C#完成数据库用户验证。 此处使用ASP.NET工程来完成这个项目,和Windows应用不同的是:这个项目是在服务器上、依靠IIS服…

TCP包头、UDP包头、IP包头、和MAC帧包头详细字段和包头大小

1 TCP头 TCP是一种可靠的、面向连接的字节流服务,头部定义如下。 /*TCP头定义,共20个字节*/ typedef struct _TCP_HEADER {short m_sSourPort;       // 源端口号16bitshort m_sDestPort;       // 目的端口号16bitunsigned int m_uiSequNum; …

经典面试题:用户反映你开发的网站访问很慢可能会是什么原因

原文链接:http://blog.csdn.net/lv_victor/article/details/53148421 问题场景:某个用户向你反映说你开发的网站访问速度很慢,但是该用户访问其他问题很正常,分析下原因、有哪些工具分析原因、怎么解决问题? 最近面试两…

《假如编程是魔法之零基础看得懂的Python入门教程 》——(三)使用初始魔法跟编程魔法世界打个招呼吧

学习目标 完成显示魔法的使用——输出print完成传入魔法的使用——输入input使魔法生效——运行python文件 目录 第一篇:《假如编程是魔法之零基础看得懂的Python入门教程 》——(一)既然你选择了这系列教程那么我就要让你听得懂 第二篇&am…

查缺补漏系统学习 EF Core 6 (一)

推荐关注「码侠江湖」加星标,时刻不忘江湖事掌握 ORM 开发方式是每一个 .NET 开发者所必备的技能,而且 .NET 平台有很多优秀的 ORM 框架。很多人都会诟病 .NET 官方标配的 Entity Framework,感觉其笨重难用、性能低下。但其实经过多年发展&am…

mysql 5.5 mysqldump_mysql 5.5 mysqldump 原文翻译

根据mysql 5.5第6.4章节理解和自己翻译水平有限如有纰漏请指教,原文如下.6.4 使用mysqldump备份(Using mysqldump for Backups)首先多余的不用说了备份用来干什么大家都清楚。mysqldump备份分两种输出形式:1. 无--tab选项,输出标准的SQL格式。输出包含CR…

【经典回放】JavaScript学习详细干货笔记之(一)

【经典回放】JavaScript学习详细干货笔记之(一) 【经典回放】JavaScript学习详细干货笔记之(二) 【经典回放】JavaScript学习详细干货笔记之(三) 目录 一、为什么要学JavaScript 二、JavaScript经典案例 …

Java Attach API

catalog 1. instrucment与Attach API 2. BTrace: VM Attach的两种方式 3. Sun JVM Attach API 1. instrucment与Attach API JDK5中增加了一个包java.lang.instrucment,能够对JVM底层组件进行访问。在JDK 5中,Instrument 要求在运行前利用命令行参数或者系…

TCP之三次握手和四次挥手过程

1 TCP包头里面的标志位 下图为TCP头部里面部分信息,入下标志位,每个标志位占一位。 标志位这里会涉及3个,ACK SYN FIN ACK:确认序号有效。 SYN:发起一个新连接。 FIN:释放一个连接。 2 三次握手过程 第一次握手 Client将标志位SYN置1,随机产生一个值seq=J,并将数…

Handler 机制分析

android 子线程和UI线程的交互主要使用Handler的方法进行通信。本文分析Handler机制 Handler 如何使用? Handler的使用比较简单 public class MainActivity extends Activity{private Handler handler new Handler() { public void handleMessage(Message msg) { …

gearman mysql编译_gearman初探(一、编译和安装)

gearman是一个任务分发系统,将计算比较耗时的任务分发给不同的机器专门进行计算,而任务发起的初始程序不必等待这些任务完成就可以返回而继 续执行。笔者最开始做PHP邮件发送的时候,因为邮件发送耗时比较长,这时PHP脚本就会被阻塞…

《假如编程是魔法之零基础看得懂的Python入门教程 》——(四)了解魔法百宝箱列表、字典及基本数据类型

学习目标 了解魔法世界中可更改容器——变量了解魔法世界的基本数值类型——字符串、整数了解魔法百宝箱——字典、列表了解列表如何添加值了解字典如何添加值了解字典与列表定义的不同符号 目录 第一篇:《假如编程是魔法之零基础看得懂的Python入门教程 》——&…

TCP协议之如何保证传输的可靠性

一、问题 TCP协议之如何保证传输的可靠性?我们先看下TCP的头部图片和TCP头部的字段 /*TCP头定义,共20个字节*/ typedef struct _TCP_HEADER {short m_sSourPort;       // 源端口号16bitshort m_sDestPort;       // 目的端口号16bitunsigned int …

【工具篇】在Mac上开发.Net Core需要的工具

微信公众号:趣编程ACE关注可了解更多的.NET日常开发技巧,如需帮助,请后台留言;[如果觉得本公众号对您有帮助,欢迎关注]在Mac上开发.Net Core需要的工具如果您是一个.NET 开发者,想从Windows切换到Mac上开发.NET或者您已…

【Pix4d精品教程】Pix4Dmapper完整航测内业操作流程手把手图文教程

1. 作业流程图 2. 原始资料准备 原始资料包括影像数据、POS数据以及控制点数据。 确认原始数据的完整性,检查获取的影像中有没有质量不合格的相片。同时查看POS数据文件,主要检查航带变化处的相片号,防止POS数据中的相片号与影像数据相片号不对应,出现不对应情况应手动调…

关于构造函数和this调用的思考

文中一系列思考和内容引发自以下问题:我需要在一个类的构造函数中调用另一个对象的构造函数,并使用this初始化其中的一个引用成员。 主要遇到的问题: 1. 构造函数的初始化列表中能访问this吗? 很明显c创建一个对象分为两部分&…

mysql semi join_MySQL 5.6 Semi join优化之materialization strategy

8月 24, 2014 |Nix.Huang考虑如下查询:select * from Countrywhere Country.code IN (select City.Countryfrom Citywhere City.Population > 7*1000*1000)and Country.continentEurope这个子查询是非相关子查询,我们能和外层循环独立的执行它&#x…

【ArcGIS风暴】何为动态投影?这次全面为您揭开ArcGIS中动态投影的神秘面纱!

本课程配套蓝光视频: 【ArcGIS风暴】GIS动态投影问题 GISer们都见过以下警告,该警告的原因是当前加载的数据的坐标系和当前数据框坐标系不一致导致的,核心问题是地理坐标系不一致。如当前数据的坐标系是GCS_Xian_1980,而数据框的坐标系有可能是WGS_1984等,总之跟要加载的数…

《假如编程是魔法之零基础看得懂的Python入门教程 》——(五)我的魔法竟然有了一丝逻辑

学习目标 了解魔法世界中的结构表现——缩进了解魔法世界的逻辑判断——if了解魔法世界的多次逻辑判断——ifelse嵌套了解魔法世界中的逻辑运算——且 and 与或 or 推荐 1.《备受好评的看得懂的C语言入门教程》 目录 第一篇:《假如编程是魔法之零基础看得懂的P…

类和类之间的关系

一、类和类之间的关系 UML类图中,常见以下几种关系: 1、泛化(Generalization) 是一种继承关系,比如动物类和老虎类,老虎继承动物,子类如何特化父类的所有特征和行为 箭头指向:带三角箭头的实线&#xff0…