创建你的第一个webdriver python代码
前言
今天我们开始我们的第一个python webdriver自动化测试脚本。并就测试脚本进行一一解释说明。
webdriver python代码
本示例代码演示了使用Ie浏览器访问百度进行搜索测试。 HTMLTestRunner 从这里下载:http://tungwaiyip.info/software/HTMLTestRunner_0_8_2/HTMLTestRunner.py 下载后和当前测试脚本放在同一目录。
# 将以下代码保存到first_webdriver.py中
#-*- coding:utf-8 -*-
__author__ = u'苦叶子'
from selenium import webdriver
import unittest
import HTMLTestRunner
import sys
from time import sleep
reload(sys)
sys.setdefaultencoding("utf-8")
class BaiduTest(unittest.TestCase):
"""百度首页搜索测试用例"""
def setUp(self):
self.driver = webdriver.Ie()
self.driver.implicitly_wait(30)
self.base_url = u"http://www.baidu.com"
def test_baidu_search(self):
driver = self.driver
print u"开始[case_0001]百度搜索"
driver.get(self.base_url)
# 验证标题
self.assertEqual(driver.title, u"百度一下,你就知道")
driver.find_element_by_id("kw").clear()
driver.find_element_by_id("kw").send_keys(u"开源优测")
driver.find_element_by_id("su").click()
sleep(3)
# 验证搜索结果标题
self.assertEqual(driver.title, u"开源优测_百度搜索")
def tearDown(self):
self.driver.quit()
if __name__ == '__main__':
testunit = unittest.TestSuite()
testunit.addTest(BaiduTest('test_baidu_search'))
# 定义报告输出路径
htmlPath = u"testReport.html"
fp = file(htmlPath, "wb")
runner = HTMLTestRunner.HTMLTestRunner(stream=fp,
title=u"百度测试",
description=u"测试用例结果")
runner.run(testunit)
fp.close()
代码解释
总体上代码分为五大块
- 文件保存编码及作者定义
#-*- coding:utf-8 -*-
__author__ = u'苦叶子'
- 导入相关基础模块
# 从selenium中导入webdriver模块
from selenium import webdriver
# 导入unittest模块,作为用例基类
import unittest
# 导入html报告生成模块,用于html格式报告生成
import HTMLTestRunner
# 导入sys模块
import sys
# 导入sleep模块,用于强制等待
from time import sleep
- 设置当前python运行环境为utf8
# 设置当前python运行在utf-8编码下,这样你的中文就不会乱码了
reload(sys)
sys.setdefaultencoding("utf-8")
- 定义和实现测试用例
# 从unittest.TestCase继承
class BaiduTest(unittest.TestCase):
"""百度首页搜索测试用例"""
# 用例级初始化函数,自动执行
def setUp(self):
# 初始化基于IE浏览器的webdriver实例
self.driver = webdriver.Ie()
# 给当前webdriver设置全局隐性等待时间,最大30s
self.driver.implicitly_wait(30)
# 设置首页url
self.base_url = u"http://www.baidu.com"
def test_baidu_search(self):
# 简单赋值,这样在本测试中后续就不用每次都写self.driver,
# 少写几个字符, 都是为了偷懒啊
创建你的第一个webdriver python代码的更多相关文章
- doctest --- 一个改善python代码质量的工具
[简介] 说实话吧,之前一直没有怎么重视给自己的代码加上测试逻辑:也就是说我只是写了代码,但是并没有给自己的代码加上测试代码: 整个过程就是写完后自己测试一下,看一下跑出来的结果是正确的就心满意足了. ...
- 写一个段落python代码推理list深浅
主要是针对嵌套列表问题. 列表套列表,究竟子列表那个更深... 这个问题想着就烦.假设嵌套10000万个列表是不是要统计10000个数再排序呢? 最后想了想用 list的extend功能 加上递归函数 ...
- 已解决】Sublime中运行带input或raw_input的Python代码出错:EOFError: EOF when reading a line(转)
[问题] 在折腾: [已解决]Sublime Text 2中运行Python程序出错:The system cannot find the file specified 的过程中,虽然解决了找不到py ...
- 按PEP8风格自动排版Python代码
Autopep8是一个将Python代码自动排版为PEP8风格的小工具.它使用pep8工具来决定代码中的哪部分需要被排版.Autopep8可以修复大部分pep8工具中报告的排版问题. 安装步骤如下: ...
- 40多行python代码开发一个区块链。
40多行python代码开发一个区块链?可信吗?我们将通过Python 2动手开发实现一个迷你区块链来帮你真正理解区块链技术的核心原理.python开发区块链的源代码保存在Github. 尽管有人认为 ...
- Mininet python代码创建拓扑、交互式界面创建主机、交换机
python代码创建拓扑: from mininet.net importMininet net =Mininet() # Creating nodes in the network. c ...
- Python进阶丨如何创建你的第一个Python元类?
摘要:通过本文,将深入讨论Python元类,其属性,如何以及何时在Python中使用元类. Python元类设置类的行为和规则.元类有助于修改类的实例,并且相当复杂,是Python编程的高级功能之一. ...
- 一个 11 行 Python 代码实现的神经网络
一个 11 行 Python 代码实现的神经网络 2015/12/02 · 实践项目 · 15 评论· 神经网络 分享到:18 本文由 伯乐在线 - 耶鲁怕冷 翻译,Namco 校稿.未经许可,禁止转 ...
- java 添加一个线程、创建响应的用户界面 。 演示示例代码
javajava 添加一个线程.创建响应的用户界面 . 演示示例代码 来自thinking in java 4 21章 部分的代码 夹21.2.11 thinking in java 4免费下载: ...
随机推荐
- WPF Prism框架下基于MVVM模式的命令、绑定、事件
Prism框架下的自定义路由事件和命令绑定 BaseCode XAML代码: <Button x:Class="IM.UI.CommandEx.PrismCommandEx" ...
- css 居中,中央
在我的技巧里,有4中居中中央的方法: 1.position:absolute; top:50%;left:50%; margin : -x 0 0 -x; 这是绝对定位的方法,通过算法移动,坏处就是必 ...
- IOS 中openGL使用(使用基准图快速制作滤镜)
Color Lookup Table 在影像处理领域中,当我们想要调整一个影像的色彩时,经常会用到 Color Lookup Table 的技术. 举个简单的例子,如果我们想要让影像中的每个像素的R值 ...
- APIJSON,让接口和文档见鬼去吧!
我: APIJSON,让接口和文档见鬼去吧! https://github.com/TommyLemon/APIJSON 服务端: 什么鬼? 客户端: APIJSON是啥? 我: APIJSON是一种 ...
- 推荐一本书:清华出版的《Modbus软件开发实战指南》
前言: 最近在研究Modbus开发,如果只是简单的了解了一些modbus基础知识,但是不够系统和全面. 其实,modbus虽然比较简单,但是如果不注意有很多坑,特别是寄存器的位数,大小端处理,浮点数, ...
- JNI之C初探
JNI是Java Native Interface的缩写,从Java1.1开始,JNI标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互.JNI一开始是为了本地已编译语言,尤其 ...
- XMemcached简单使用示例
Memcached的Java客户端目前有三个: Memcached Client for Java 比 SpyMemcached更稳定.更早.更广泛: SpyMemcached 比 Memcached ...
- 让SQL再快一点儿
文章转载自「开发者圆桌」一个关于开发者入门.进阶.踩坑的微信公众号 SQL即结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一种数据库查询和程序设计语 ...
- Hibernate乐观锁和悲观锁
Hibernate支持两种锁机制: 即通常所说的"悲观锁(Pessimistic Locking)"和 "乐观锁(OptimisticLocking)". 悲观 ...
- 1589: [Usaco2008 Dec]Trick or Treat on the Farm 采集糖果
1589: [Usaco2008 Dec]Trick or Treat on the Farm 采集糖果 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 4 ...