ows环境下的安装 22
3.1.1 安装Python 22
3.1.2 安装Selenium 25
3.1.3 安装开发工具和IDE 28
3.1.4 搭建不同的浏览器环境 35
3.2 macOS环境下的安装 37
3.2.1 安装Python 37
3.2.2 安装Selenium 40
3.2.3 浏览器的驱动 40
第二篇 基础篇
第4章 Selenium元素定位 43
4.1 Python基础知识 43
4.1.1 数字类型 44
4.1.2 字符串类型 44
4.1.3 常用的判断与循环语句 45
4.1.4 列表对象 47
4.2 Selenium八大定位 58
4.2.1 id定位 58
4.2.2 name定位 60
4.2.3 class定位 61
4.2.4 link_text定位 61
4.2.5 partial_link_text定位 63
4.2.6 CSS定位 63
4.2.7 XPath定位 65
4.2.8 tag_name定位 67
4.3 表格定位 68
4.3.1 遍历表格单元格 69
4.3.2 定位表格中的特定元素 70
4.3.3 定位表格中的子元素 71
4.4 关联元素定位策略 72
4.4.1 Above模式 73
4.4.2 Below模式 74
4.4.3 Leftof模式 76
4.4.4 Rightof模式 76
4.4.5 Near模式 77
4.4.6 Chainingrelativelocators模式 77
第5章 Selenium常用方法 79
5.1 基本方法 79
5.2 特殊元素定位 90
5.2.1 鼠标事件操作 90
5.2.2 常用的键盘事件 92
5.2.3 Select操作 93
5.2.4 定位一组元素 97
5.3 Frame操作 99
5.4 上传与下载附件 101
5.4.1 上传附件操作方式一 101
5.4.2 上传附件操作方式二 102
5.4.3 上传附件操作方式三 104
5.4.4 下载附件 105
5.5 Cookie操作 106
5.6 驱动管理模式 109
5.7 颜色验证 109
5.8 3种等待模式 110
5.8.1 强制等待模式 110
5.8.2 隐式等待模式 110
5.8.3 显式等待模式 111
5.9 多窗口切换 112
5.10 弹框操作 113
5.11 ChromeOptions 115
5.12 滑块操作 116
5.13 元素截图 117
5.14 JavaScript操作页面元素 118
5.15 jQuery操作页面元素 121
5.16 innerText与innerHTML 122
5.17 通过源码理解By.ID 123
第三篇 项目篇
第6章 项目实战 129
6.1 项目需求分析汇总 129
6.1.1 制订项目计划 130
6.1.2 编写测试用例 131
6.2 业务场景的覆盖与分拆 133
6.2.1 逐个分析页面元素 135
6.2.2 分层创建脚本 142
6.3 项目代码总结 153
第7章 项目重构与代码优化 156
7.1 项目重构 156
7.1.1 元素定位方法优化 156
7.1.2 新增岗位优化 159
7.1.3 代码分层优化 161
7.1.4 三层架构 165
7.2 代码优化 168
7.2.1 无人值守自动化 168
7.2.2 等待时间优化 170
第8章 数据驱动测试 172
8.1 一般文件操作 173
8.1.1 文本文件操作 173
8.1.2 CSV文件操作 175
8.1.3 Excel文件操作 177
8.1.4 JSON文件操作 180
8.1.5 XML文件操作 183
8.1.6 YAML文件操作 185
8.1.7 文件夹操作 188
8.2 通过Excel参数,实现参数与脚本的分离 188
8.2.1 创建Excel文件,维护测试数据 189
8.2.2 FrameworkLog设置 190
8.2.3 初步实现数据驱动 196
8.3 数据驱动框架DDT 200
8.3.1 单元测试 200
8.3.2 数据驱动框架应用 210
8.3.3 DDT+Excel实现循环测试 218
第9章 PageObject设计模式 222
9.1 什么是PageObject 222
9.2 PageObject实战 223
9.2.1 Common层代码分析 224
9.2.2 Base层代码分析 229
9.2.3 PageObject层代码分析 232
9.2.4 TestCases层代码分析 235
9.2.5 Data层分析 236
9.2.6 Logs层分析 237
9.2.7 Reports层分析 238
9.2.8 其他分析 239
9.2.9 执行PageObject项目 239
第10章 pytest框架实战 245
10.1 pytest与Allure 245
10.1.1 pytest的安装 246
10.1.2 简单测试案例介绍 246
10.1.3 引入类来管理测试方法 247
10.1.4 setup和teardown方法应用 248
10.1.5 fixtures功能应用 250
10.1.6 pytest如何做参数化 251
10.1.7 conftest应用 252
10.1.8 运行Selenium 255
10.1.9 使用pytest生成测试报告 256
10.1.10 集成Allure报告 257
10.2 使用pytest重构项目 259
第11章 行为驱动测试 261
11.1 安装环境 261
11.2 行为驱动之小试牛刀 262
11.3 基于Selenium的行为驱动测试 265
11.4 结合PageObject的行为驱动测试 267
第四篇 平台篇
第12章 测试平台维护与项目部署 273
12.1 Git应用 273
12.1.1 安装Git 274
12.1.2 Git常用操作 277
12.1.3 运用GitHub 280
12.2 安装Jenkins 283
12.3 配置Jenkins 287
12.4 Jenkins应用 292
12.4.1 自由风格项目介绍 292
12.4.2 JenkinsPipeline 296
12.5 完整的Jenkins自动化实例 304
12.6 项目部署 313
12.6.1 获取当前环境模块列表 313
12.6.2 安装项目移植所需的模块 315
第13章 Docker容器技术与多线程测试 316
13.1 Docker简介 316
13.2 Docker的一般应用场景 318
13.3 Docker的安装和简单测试 319
13.3.1 Docker的安装 319
13.3.2 Docker的简单测试 321
13.4 Python多线程介绍 323
13.4.1 一般方式实现多线程 323
13.4.2 用可调用类作为参数实例化Thread类 324
13.4.3 Thread类派生子类(重写run方法) 325
13.5 使用Docker容器技术进行多线程测试 326
13.5.1 SeleniumGrid 326
13.5.2 安装需要的镜像 327
13.5.3 启动SeleniumHub 328
13.5.4 启动SeleniumNode 328
13.5.5 查看SeleniumGridConsole界面 329
13.5.6 Docker环境下多线程并发执行SeleniumGrid测试 330