第一篇基础篇
第1章Selenium简介
1.1Selenium的前世今生
1.2Selenium工具套件介绍
1.3Selenium支持的浏览器和平台
1.3.1Selenium IDE、Selenium 1和Selenium RC支持的浏览器和平台
1.3.2Selenium 2(WebDriver)支持的浏览器
1.4Selenium RC和WebDriver的实现原理
1.4.1Selenium RC的实现原理
1.4.2WebDriver的实现原理
1.4.3Selenium 1和WebDriver的特点
1.5Selenium 3的新特性
第2章关于自动化测试
2.1自动化测试目标
2.2管理层的支持
2.3投入产出比
2.4敏捷开发中的自动化测试应用
2.5自动化测试人员分工
2.6自动化测试工具的选择和推广使用
2.6.1自动化测试工具的选择
2.6.2Selenium WebDriver 和QTP工具的特点比较
2.7在项目中实施自动化的最佳实践
2.8学习Selenium工具的能力要求
第3章自动化测试辅助工具
3.1安装Firefox浏览器
3.2安装Firebug插件
3.2.1打开工具箱
3.2.2定位页面元素的HTML代码
3.3使用定位页面元素的Firefox浏览器插件
3.3.1安装Firebug元素定位插件
3.3.2使用RutoXPath Finder进行页面元素定位
3.3.3使用XPath Finder插件进行页面元素定位
3.4IE浏览器自带的辅助开发工具
3.5Chrome浏览器自带的辅助开发工具
第4章搭建Python 3环境和PyCharm集成开发环境
4.1安装和配置Python 3环境
4.1.1下载并安装Python 3解释器
4.1.2配置Python 3环境
4.1.3安装pip
4.2安装Python集成开发环境PyCharm
4.3新建一个Python工程
第5章Selenium 3(WebDriver)的安装
5.1在Python中安装WebDriver
5.2第一个WebDriver脚本
5.3各浏览器驱动的使用方法
第6章pytest单元测试框架
6.1单元测试的定义
6.2pytest单元测试框架
6.3安装pytest测试框架
6.4pytest用例编写规则
6.5pytest单元测试框架初体验
6.6如何执行pytest测试用例
6.7setup和teardown函数
6.8失败重试
6.9控制测试函数运行顺序
6.10生成HTML测试报告
6.11通过配置文件配置要执行的测试用例
6.12捕获异常
6.13标记函数
6.13.1过滤测试函数
6.13.2跳过测试
6.13.3预期失败
6.13.4参数化
6.13.5超时时间
6.13.6失败重跑
6.13.7自定义标记
6.14固件
6.14.1作为参数引用
6.14.2作为函数引用
6.14.3设置自动使用fixture
6.14.4设置作用域为function
6.14.5设置作用域为class
6.14.6设置作用域为module
6.14.7设置作用域为session
6.14.8使用fixture返回值
6.14.9参数化
6.14.10yield与addfinalizer
第7章unittest单元测试框架
7.1关于unittest
7.2unittest框架四个重要概念
7.3单元测试加载方法
7.4测试用例
7.5测试集合
7.6按照特定顺序执行测试用例
7.7忽略某个测试方法
7.8命令行模式执行测试用例(x)
7.9批量执行测试模块
7.10常用的断言方法
7.11在unittest中运行第一个WebDriver测试用例
第8章页面元素定位方法
8.1定位页面元素方法汇总
8.2使用ID定位
8.3使用name定位
8.4使用链接的全部文字定位
8.5使用部分链接文字定位
8.6使用HTML标签名定位
8.7使用Class名称定位
8.8使用XPath定位
8.8.1关于XPath
8.8.2XPath节点
8.8.3XPath定位语法
8.8.4XPath运算符
8.9CSS定位
8.9.1关于CSS
8.9.2CSS定位语法
8.9.3XPath定位与CSS定位的比较
8.10表格的定位
8.10.1遍历表格所有的单元格
8.10.2定位表格中的某个元素
8.10.3定位表格中的子元素
第二篇实战应用篇
第9章WebDriver的多浏览器测试
9.1使用IE浏览器进行测试
9.2使用Firefox浏览器进行测试
9.3使用Chrome浏览器进行测试
第10章WebDriver API详解
10.1访问某个网址
10.2网页的前进和后退
10.3刷新当前网页
10.4浏览器窗口最大化
10.5获取并设置当前窗口的位置
10.6获取并设置当前窗口的大小
10.7获取页面的Title属性值
10.8获取页面HTML源代码
10.9获取当前页面的URL地址
10.10获取与切换浏览器窗口句柄
10.11获取页面元素的基本信息
10.12获取页面元素的文本内容
10.13判断页面元素是否可见
10.14判断页面元素是否可操作
10.15获取页面元素的属性
10.16获取页面元素的CSS属性值
10.17清空输入框中的内容
10.18在输入框中输入指定内容
10.19单击按钮
10.20双击某个元素
10.21操作单选下拉列表
10.21.1遍历所有选项并打印选项显示的文本和选项值
10.21.2选择下拉列表元素的三种方法
10.22断言单选列表选项值
10.23操作多选的选择列表
10.24操作可以输入的下拉列表(输入的同时模拟按键)
10.25操作单选框
10.26操作复选框
10.27断言页面源码中的关键字
10.28对当前浏览器窗口截屏
10.29拖曳页面元素
10.30模拟键盘单个按键操作
10.31模拟组合按键操作
10.31.1通过WebDriver内建的模块模拟组合键
10.31.2通过第三方模块模拟组合按键
10.31.3通过设置剪贴板实现复制和粘贴
10.32模拟鼠标右击
10.33模拟鼠标左键按下与释放
10.34保持鼠标指针悬停在某个元素上
10.35判断页面元素是否存在
10.36隐式等待
10.37显式等待
10.38显式等待中期望的场景
10.39使用Title属性识别和操作新弹出的浏览器窗口
10.40通过页面的关键内容识别和操作新浏览器窗口
10.41操作Frame中的页面元素
10.42使用Frame中的HTML源码内容操作Frame(x)
10.43操作IFrame中的页面元素
10.44操作JavaScript的Alert弹窗
10.45操作JavaScript的confirm弹窗
10.46操作JavaScript的prompt弹窗
10.47操作浏览器的Cookie
10.48指定页面加载时间
第11章WebDriver高级应用
11.1使用JavaScript操作页面元素
11.2操作Web页面的滚动条
11.3在Ajax方式产生的浮动框中,单击选择包含某个关键字的选项
11.4结束Windows中浏览器的进程
11.5更改一个页面对象的属性值
11.6无人工干预地自动下载某个文件
11.7无人工干预地自动上传附件
11.7.1使用WebDriver的send_keys方法上传文件
11.7.2模拟键盘操作,实现上传文件
11.7.3使用第三方工具AutoIt上传文件
11.8右键另存为下载文件
11.9操作日期控件
11.10启动带有用户配置信息的Firefox浏览器窗口
11.11UI对象库
11.12操作富文本框
11.13精确比较页面截图图片
11.14高亮显示正在操作的页面元素
11.15浏览器中新开标签页
11.16测试过程中发生异常或断言失败时进行屏幕截图
11.17使用日志模块记录测试过程中的信息
11.18封装操作表格的公用类
11.19测试HTML5语言实现的视频播放器
11.20在HTML5的画布元素上进行绘画操作
11.21操作HTML5存储对象
11.22使用Chrome浏览器自动将文件下载到指定路径
11.23使用Firefox浏览器自动下载文件到指定路径
11.24修改Chrome设置伪装成手机M站
11.25将Firefox浏览器伪装成手机M站
11.26屏蔽Chrome的ignorecertificateerrors提示及禁用扩展插件并实现
窗口最大化
11.27禁用Chrome浏览器的PDF和Flash插件
11.28禁用IE的保护模式
11.29禁用Chrome浏览器中的Image加载
11.30禁用Firefox浏览器中的CSS、Flash及Image加载
第三篇自动化测试框架搭建篇
第12章数据驱动测试
12.1什么是数据驱动
12.2数据驱动单元测试的环境准备
12.3使用unittest和ddt进行数据驱动
12.4使用数据文件进行数据驱动
12.5使用Excel进行数据驱动测试
12.6使用XML进行数据驱动测试
12.7使用MySQL数据库进行数据驱动测试
第13章行为驱动测试
13.1行为驱动开发和lettuce简介
13.2行为驱动测试的环境准备
13.3第一个英文语言行为驱动测试
13.4通过类模式实现英文行为驱动
13.5lettuce框架的步骤数据表格
13.6使用WebDriver进行英文的行为数据驱动测试
13.7使用WebDriver进行中文语言的行为数据驱动测试
13.8批量执行行为驱动用例集
13.9解决中文描述的场景输出到控制台乱码
第14章Selenium Grid的使用
14.1Selenium Grid简介
14.2分布式自动化测试环境准备
14.3Selenium Grid的使用方法
14.3.1远程调用Firefox浏览器进行自动化测试
14.3.2远程调用IE浏览器进行自动化测试
14.3.3远程调用Chrome浏览器进行自动化测试
14.3.4同时支持多个浏览器进行自动化测试
14.4结合uittest完成分布式自动化测试
14.5实现并发的分布式自动化测试
第15章自动化测试框架的搭建及实战
15.1关于自动化测试框架
15.2数据驱动框架及实战
15.3关键字驱动框架及实战
15.4关键字&数据混合驱动框架及实战
第四篇常见问题和解决方法
第16章自动化测试常见问题和解决方法
16.1如何让WebDriver支持IE 11
16.2解决Unexpected error launching Internet Explorer.Browser zoom
level was set to 75%(或其他百分比)的错误
16.3解决某些IE浏览器中输入数字和英文特别慢的问题
16.4解决Firefox浏览器的cant access dead object异常
16.5常见异常和解决方法