Selenium WebDriver自動化測試完全指南
內容描述
Selenium是ThoughtWorks公司開發的*款用於Web應用程序測試的工具,
它憑藉支持多種瀏覽器、支持各種語言、跨平台、開源等優點得到了廣泛應用。
《Selenium WebDriver自動化測試完全指南》以Python 3.x為基礎,
借助多個案例項目介紹Selenium的用法,涵蓋內容採集、數據處理、單元測試等內容。
本書共分為17章,主要內容有安裝Selenium、頁面導航、元素定位、PhantomJS、
數據編解碼、單元測試、多線程、發送郵件、Selenium IDE、Python擴展、圖形化測試等。
本書每章都包含相應的實踐內容,而且在適當的位置還包含綜合性的實戰環節,
幫助讀者檢驗前面所學內容並活學活用。
《Selenium WebDriver自動化測試完全指南》內容通俗易懂,案例豐富,實用性強,
適合從事Python開發、大數據開發、爬蟲開發、前端開發以及測試等工作的人員閱讀。
目錄大綱
目錄:
第1章安裝Selenium 1
1.1 Selenium的優點1
1.2 Selenium WebDriver 3
1.3在Windows和Linux操作系統上安裝Selenium 5
1.3.1 Windows操作系統上Python的安裝說明5
1.3.2 Linux操作系統上Python的安裝說明7
第2章頁面導航8
2.1啟動瀏覽器8
2.2打開頁面10
2.3瀏覽器基本操作11
2.4拖動窗口12
2.5 cookie的調用14
2.6使用多個窗口16
2.7參考網站17
第3章元素定位19
3.1元素定位概述19
3.2根據ID定位20
3.3根據name定位23
3.4根據XPath定位24
3.5根據標籤名定位26
3.6根據類名定位28
3.7根據CSS選擇器定位30
3.8根據鏈接文本定位31
3.9根據部分鏈接文本定位32
第4章利器——PhantomJS 34
4.1 PhantomJS 34
4.2下載與安裝PhantomJS 35
4.2.1在Windows操作系統上安裝PhantomJS 35
4.2.2在Linux操作系統上安裝PhantomJS 35
4.2.3檢驗安裝36
4.3配置相應的WebDriver 36
4.4第一個PhantomJS小程序37
4.5通過time.sleep()慢下來40
4.6 PhantomJS的命令行參數41
4.7其他問題42
4.7.1中文編碼問題42
4.7.2不同frame間的轉換42
4.7.3 PhantomJS進程不會自動退出42
第5章基於Python官網的實戰43
5.1通過Selenium訪問Python官網43
5.2通過JavaScript修改Python官網的標題44
5.3在搜索框搜索45
5.4獲取latest news部分46
5.5 Selenium的等待48
第6章基於現在頭條的實戰52
6.1通過Selenium訪問百度熱詞52
6.2通過Selenium搜索相關熱詞54
6.3獲取第一條結果55
6.4定位元素——抓取內容57
6.5存儲數據59
第7章數據的編解碼和處理64
7.1讀寫CSV文件64
7.2讀寫JSON文件66
7.3將字典轉化為XML 70
7.4解析XML 72
7.5 Base64編碼74
7.6詞性分析、統計分析NLTK 75
7.7散列表82
7.8布隆過濾器83
7.9關係數據庫MySQL 86
7.9.1安裝MySQL 86
7.9.2 MySQL常用命令89
7.10非關係型數據庫98
7.11總結98
第8章基於貓眼電影的實戰100
8.1網站分析100
8.2 *初的測試代碼103
8.3進一步完善之後的測試代碼105
第9章基於淘寶商品的實戰109
9.1準備工作109
9.2流程簡述110
9.3代碼解讀112
9.4可配置項118
第10章單元測試120
10.1為什麼要寫單元測試120
10.2怎樣寫單元測試121
10.3單元測試的演示121
10.4單元測試示例124
10.5 Selenium的單元測試127
10.6美化報告128
第11章多線程132
11.1什麼是進程線程132
11.2單線程與多線程的對比133
11.3實際體驗133
11.4 threading庫中常用的函數137
11.5鎖的概念138
11.6主程序是線程還是進程140
11.7更多解決方案140
11.8基於多線程和Selenium的示例141
11.9 GIL 142
第12章發送郵件143
12.1通信的選擇143
12.2獲取授權碼144
12.3發送郵件145
第13章Selenium IDE 149
13.1安裝Selenium IDE 149
13.2 Selenium IDE 151
13.3 Katalon Recorder 155
13.3.1 Katalon Recorder的界面155
13.3.2實例與步驟157
13.4數據驅動159
13.5擴展腳本161
13.5.1添加擴展腳本161
13.5.2定位器構建器161
13.5.3定位器構建的自定義順序162
13.5.4 Prototype附加命令162
13.6 Katalon Recorder Helper工具163
第14章Python擴展165
14.1 2to3工具165
14.2測試類型166
14.3通配符類型167
14.4 str方法168
14.5異常層次結構169
14.6兼容Python 2和Python 3 171
14.7兼容性代碼172
14.7.1導入庫172
14.7.2輸出函數172
14.7.3異常捕獲173
14.8類相關173
14.9推導式174
14.10經典除法和真除法176
14.11 future 176
14.12類型轉換和關鍵字177
第15章GUI測試179
15.1 tkinter測試179
15.2創建界面180
15.3按鈕181
15.4 pack屬性182
15.5繼承類183
15.6複選框和單選按鈕185
15.7 Entry輸入框187
15.8列錶框193
15.9 Text控件196
15.10 Canvas控件200
15.11 Menu控件203
15.12 spinbox控件206
15.13 messagebox 207
15.14 filedialog 208
15.15 Message 209
15.16 tkinter界面佈局210
15.17 tkinter支持的模塊211
15.18 _tkinter接口212
15.19 tkinter.ttk 212
15.20底層實現流程212
第16章基於知乎的實戰214
16.1知乎分析214
16.2文字部分217
16.3圖片部分221
16.4建議227
16.4.1從乾淨的狀態開始227
16.4.2測試的隔離228
16.4.3 Anaconda 228
16.4.4報告229
16.4.5 IP代理229
16.4.6過濾請求230
16.5一些注意事項231
16.5.1 CAPTCHA 231
16.5.2性能測試231
16.5.3六度分割理論及其實際使用232
16.5.4 HTTP狀態碼232
16.6常見問題234
16.6.1元素定位失敗234
16.6.2 WebDriver調用失敗237
第17章基於新浪微博的實戰238
17.1新浪微博分析238
17.2實現思路240
17.3代碼改進247
17.4結語251
附錄A如何閱讀源代碼252
附錄B Git分佈式計算256
作者介紹
劉傲凡
精通互聯網技術和計算機爬蟲技術,熟悉網頁抓取原理及技術,
並在HTML、JavaScript、正則表達式、Jsoup、jQuery等方面有深入研究,
還對WebMagic框架、PhantomJS、Headless Chrome、
Selenium WebDriver等前沿技術保持著極高的熱情和濃厚的興趣。
作者曾於《中山大學研究生學刊》發表論文“基於大數據的問答網站用戶質量與數量的關係淺析——以知乎為例”。
同時,作者深刻理解驗證碼識別、數據挖掘、數據存儲等技術,曾協助多家企業搭建分佈式爬蟲架構。