前言

今天我们开始我们的第一个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()

代码解释

总体上代码分为五大块

  1. 文件保存编码及作者定义
#-*- coding:utf-8 -*-
__author__ = u'苦叶子'
  1. 导入相关基础模块
# 从selenium中导入webdriver模块
from selenium import webdriver
# 导入unittest模块,作为用例基类
import unittest
# 导入html报告生成模块,用于html格式报告生成
import HTMLTestRunner
# 导入sys模块
import sys
# 导入sleep模块,用于强制等待
from time import sleep
  1. 设置当前python运行环境为utf8
# 设置当前python运行在utf-8编码下,这样你的中文就不会乱码了
reload(sys)
sys.setdefaultencoding("utf-8")
  1. 定义和实现测试用例
# 从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代码的更多相关文章

  1. doctest --- 一个改善python代码质量的工具

    [简介] 说实话吧,之前一直没有怎么重视给自己的代码加上测试逻辑:也就是说我只是写了代码,但是并没有给自己的代码加上测试代码: 整个过程就是写完后自己测试一下,看一下跑出来的结果是正确的就心满意足了. ...

  2. 写一个段落python代码推理list深浅

    主要是针对嵌套列表问题. 列表套列表,究竟子列表那个更深... 这个问题想着就烦.假设嵌套10000万个列表是不是要统计10000个数再排序呢? 最后想了想用 list的extend功能 加上递归函数 ...

  3. 已解决】Sublime中运行带input或raw_input的Python代码出错:EOFError: EOF when reading a line(转)

    [问题] 在折腾: [已解决]Sublime Text 2中运行Python程序出错:The system cannot find the file specified 的过程中,虽然解决了找不到py ...

  4. 按PEP8风格自动排版Python代码

    Autopep8是一个将Python代码自动排版为PEP8风格的小工具.它使用pep8工具来决定代码中的哪部分需要被排版.Autopep8可以修复大部分pep8工具中报告的排版问题. 安装步骤如下: ...

  5. 40多行python代码开发一个区块链。

    40多行python代码开发一个区块链?可信吗?我们将通过Python 2动手开发实现一个迷你区块链来帮你真正理解区块链技术的核心原理.python开发区块链的源代码保存在Github. 尽管有人认为 ...

  6. Mininet python代码创建拓扑、交互式界面创建主机、交换机

          python代码创建拓扑: from mininet.net importMininet net =Mininet() # Creating nodes in the network. c ...

  7. Python进阶丨如何创建你的第一个Python元类?

    摘要:通过本文,将深入讨论Python元类,其属性,如何以及何时在Python中使用元类. Python元类设置类的行为和规则.元类有助于修改类的实例,并且相当复杂,是Python编程的高级功能之一. ...

  8. 一个 11 行 Python 代码实现的神经网络

    一个 11 行 Python 代码实现的神经网络 2015/12/02 · 实践项目 · 15 评论· 神经网络 分享到:18 本文由 伯乐在线 - 耶鲁怕冷 翻译,Namco 校稿.未经许可,禁止转 ...

  9. java 添加一个线程、创建响应的用户界面 。 演示示例代码

    javajava 添加一个线程.创建响应的用户界面 . 演示示例代码 来自thinking in java 4 21章  部分的代码  夹21.2.11 thinking in java 4免费下载: ...

随机推荐

  1. 将Error异常日志从普通日志中剥离

    开发过程中经常需要调试和线上环境查看异常日志的需求,但普通消息与异常消息混在一起实在是非常难得找,上则NM的文档够你头痛,所以就将Error级别的日志抽离出来. 本示例采用log4net来配置: 1. ...

  2. PostgreSQL指南

    PostgreSQL指南 历史简介 最近几年Postgres的关注度变得越来越高. 它加快了Postgres的发展步伐, 与此同时其他 的关系数据库系统的发展放缓. 在数据库领域中 Postgre S ...

  3. EWS 通过SubscribeToPullNotifications订阅Exchange新邮件提醒

    摘要 在ews中提供了一种拉通知的方式获取服务端邮件的操作,通过这种方式客户端可以订阅该通知,在邮箱有变化的时候,可以收到通知. 工作方式 EWS 通知是在订阅的基础上处理的.通常是一个订阅每个邮箱, ...

  4. wpf的无边框窗体透明

    本人做了3年的winform,来了新的工作,需要使用wpf.对于wpf,本人小白一个.说的不对的地方,请大家多多指导.... 今天先从wpf的窗体属性开始说起! 需要做的项目功能大概和电脑桌面类似,需 ...

  5. 每天一个linux命令(47)--scp命令

    scp是secure  copy 的简写,用于在Linux 下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝而不能跨服务器,而且scp传输是加密的.可能会稍微影响一下速度.当 ...

  6. php封装+租房子练习题

    第一个页面DBDA.class.php <?php class DBDA { public $host = "localhost"; public $uid = " ...

  7. Mac下ssh连接远程服务器时自动断开问题

    在mac下使用securecrt通过ssh连接远程服务器时,总会一段时间没有动作后,ssh被自动断开.在windows下用xmanager貌似没有遇到过这个问题. 在网上找了解决方法如下: 客户端配置 ...

  8. Cocos2d-x shader学习1: 灰度shader

    灰度shader 最近在学习shader,就把cocos2d-x 3.x版本中的很简单也很常用的灰度shader拿出来学习一下. #ifdef GL_ES precision mediump floa ...

  9. PHP学习路线图

    文章转载自「开发者圆桌」一个关于开发者入门.进阶.踩坑的微信公众号 这里整理的PHP学习路线图包含初中高三个部分,你可以通过百度云盘下载观看对应的视频 链接: http://pan.baidu.com ...

  10. 【JS】JavaScript中的闭包

    在JavaScript中,闭包指的是有权访问另一个函数作用域中的变量的函数:创建闭包最常见的方式就是在一个函数内创建另一个函数.如下例子: function A(propertyName){ retu ...