第1章 初识Selenium 1
1.1简介 1
1.2自动化测试 1
1.3 Web自动化测试 3
1.4 Selenium的前世今生 3
1.5 Selenium 1 4
1.6 Selenium 2 5
1.7 Selenium 3 6
1.8 Selenium IDE 6
1.9 Selenium Grid 6
1.10 Selenium与嵌入式 7
1.11 Selenium与云计算 7
1.12小结 8
第2章 牛刀小试之Selenium IDE 9
2.1简介 9
2.2安装Selenium IDE 9
2.3 Selenium IDE界面一览 11
2.4创建测试用例 13
2.5存储页面信息 14
2.6与AJAX页面进行交互 15
2.7处理多窗口 16
2.8 Rollup的简介 17
2.9小结 21
第3章 Selenium玩转页面元素 22
3.1简介 22
3.2浏览器调试工具 22
3.2.1 Google Chrome 22
3.2.2 Mozilla Firefox 23
3.2.3 Internet Explorer 24
3.3查找页面元素 26
3.3.1通过ID查找元素 26
3.3.2通过Name查找元素 27
3.3.3通过ClassName查找元素 28
3.3.4通过TagName查找元素 29
3.3.5通过LinkText查找元素 30
3.3.6通过PartialLinkText查找元素 31
3.3.7通过CSS选择器查找元素 32
3.3.8通过XPath查找元素 32
3.3.9通过jQuery查找元素 34
3.4元素的Actions 40
3.5小结 43
第4章 初识Selenium WebDriver 44
4.1简介 44
4.1.1概述 44
4.1.2 WebDriver与Selenium RC的区别 44
4.2 Web Driver的架构 44
4.2.1 synthesized事件和native事件 44
4.2.2 RPC调用 45
4.2.3兼容性矩阵 45
4.2.4缺陷 46
4.2.5与DOM交互 46
4.3 WebDriver、Eclipse和Java 47
4.4 WebDriver的部署 49
4.4.1使用Firefox Driver 49
4.4.2使用Chrome Driver 52
4.4.3使用Internet Explorer Driver 56
4.5 WebDriver与浏览器 60
4.5.1操作页面元素之单选按钮 60
4.5.2操作页面元素之多选按钮 62
4.5.3操作弹出窗口之验证标题 64
4.5.4操作弹出窗口之验证内容 67
4.5.5操作警告框、提示框和确认框 69
4.5.6操作浏览器最大化 72
4.5.7操作浏览器Cookies 73
4.5.8操作浏览器前进后退 76
4.5.9操作页面元素等待时间 78
4.6 WebDriver与文件系统 79
4.6.1屏幕截图操作 79
4.6.2复制文件操作 81
4.6.3创建目录操作 82
4.6.4删除目录操作 83
4.6.5读取文件操作 83
4.6.6压缩目录操作 84
4.6.7临时目录操作 85
4.6.8文件权限操作 85
4.7小结 86
第5章 玩转Selenium WebDriver 87
5.1 WebDriver与HTML5 87
5.1.1 HTML5中的Video 87
5.1.2 HTML5中的Canvas 89
5.1.3 HTML5中的Drag/Drop 90
5.1.4 HTML5中的Geolocation 94
5.2 RemoteWebDriver 97
5.2.1 RemoteWebDriver简介 97
5.2.2 RemoteWebDriver的优缺点 97
5.2.3 RemoteWebDriver服务器端 97
5.2.4 RemoteWebDriver客户端 99
5.3 WebDriver的事件处理 100
5.3.1自定义事件侦听 100
5.3.2事件处理实例 101
5.4 Page Object与Page Factory 103
5.4.1不使用Page Object 104
5.4.2使用Page Object 108
5.4.3使用Page Object、 Page Factory、@FindBy和How 118
5.5 Selenium RC迁移到WebDriver 130
5.5.1简介 130
5.5.2从Selenium RC迁移到WebDriver的优势 130
5.5.3迁移Selenium运行实例 130
5.5.4迁移测试代码到WebDriver API 131
5.6小结 131
第6章 Selenium玩转Android 132
6.1简介 132
6.2玩转Android 132
6.2.1架构 132
6.2.2搭建Android WebDriver环境 133
6.2.3最简单的测试用例 137
6.2.4旋转屏幕 137
6.2.5触摸和滚动 139
6.3当Android遇到HTML5 141
6.3.1 HTML5中的Web Storage 141
6.3.2 HTML5中的Application Cache 143
6.4在Cloud中测试Android 145
6.5小结 148
第7章 Selenium玩转iOS 149
7.1简介 149
7.2 ios-driver 149
7.2.1 ios-driver简介 149
7.2.2 ios-driver的Web app实例 150
7.2.3 ios-driver的Native app实例 153
7.2.4 ios-driver的源码编译 158
7.3 Appium 160
7.3.1 Appium简介 160
7.3.2 Appium的iOS配置 161
7.3.3 Appium的Web app实例 162
7.4小结 169
第8章 Selenium玩转Raspberry Pi 170
8.l简介 170
8.2操作系统层面的准备工作 170
8.3依赖包的安装 171
8.4运行Python版的Selenium 172
8.5运行Standalone版的Selenium Server 175
8.6小结 179
第9章 Selenium Grid 180
9.1简介 180
9.1.1 Selenium Grid是什么 180
9.1.2何时使用Selenium Grid 180
9.1.3 Selenium Grid 2.0&1.0 181
9.2 Selenium Grid的架构 181
9.3 Selenium Grid的部署 182
9.4 Selenium Grid Hub 182
9.4.1默认启动Hub 182
9.4.2配置Hub端口 182
9.4.3 JSON配置文件 184
9.5 Selenium Grid Node 184
9.5.1默认启动Node 184
9.5.2注册Mac OS X&Opera 185
9.5.3注册Linux&Firefox 187
9.5.4注册Windows&Internet Explorer 187
9.5.5注册Android&Chrome 188
9.5.6注册Appium-iOS&Safari 189
9.5.7注册多个不同类型的浏览器 190
9.6编写Selenium Grid的测试用例 193
9.7小结 194
第10章 Selenium的“兄弟姐妹们” 195
10.1简介 195
10.2 Jenkins 195
10.3 Web前端性能 198
10.3.1 BrowserMob Proxy 198
10.3.2 HttpWatch 200
10.4 Ruby的光芒 203
10.4.1 Watir-WebDriver 203
10.4.2 Capybara 204
10.5 JMeter 205
10.6 Sikuli 208
10.7小结 209
参考文献 210