不止是測試:Python網路爬蟲王者Selenium
作者 | 蟲師 |
---|---|
出版社 | 佳魁資訊股份有限公司 |
商品描述 | 不止是測試:Python網路爬蟲王者Selenium:贯演唱會的門票,蘋果的手機,網上搶購秒殺怎麼做贯自動登入愛情公寓,選擇年齡居住地,開始幫你狂發信贯進入證交所網站,自動下 |
作者 | 蟲師 |
---|---|
出版社 | 佳魁資訊股份有限公司 |
商品描述 | 不止是測試:Python網路爬蟲王者Selenium:贯演唱會的門票,蘋果的手機,網上搶購秒殺怎麼做贯自動登入愛情公寓,選擇年齡居住地,開始幫你狂發信贯進入證交所網站,自動下 |
內容簡介 ◎演唱會的門票,蘋果的手機,網上搶購秒殺怎麼做◎自動登入愛情公寓,選擇年齡居住地,開始幫你狂發信◎進入證交所網站,自動下載所有交易資料上面的功能如果是你想的,學習Selenium是你唯一的選擇只要一點點程式基礎,再加上一點點細心,你將成為網路爬蟲大師!本書並不只是告訴讀者如何使用一個自動化測試工具,而是希望讀者學習本書內容後能夠提高綜合的技術高度與寬度,從而擺脫簡單的手工測試,向高級測試工程師的道路邁進。本書不僅是介紹Selenium2自動化測試工具,也是實用的Python 程式書。
作者介紹 ■作者簡介蟲師胡志恒魅族科技高級測試工程師。2011年6月開始在博客園上持續分享各種測試技術和經驗,文章多次被51testing等網站轉載,精通性能測試、自動化測試等技術。
產品目錄 推薦序前言01 自動化測試基礎1.1 軟體測試分類 1.2 分層的自動化測試 1.3 什麼樣的專案適合自動化測試1.4 自動化測試及工具簡述1.5 Selenium 工具介紹1.6 前端技術介紹1.7 前端工具介紹1.8 開發語言的選擇02 測試環境架設2.1 Windows 下的環境架設2.2 Ubuntu 下的環境架設2.3 使用IDLE 撰寫Python2.4 撰寫第一個自動化指令稿2.5 安裝瀏覽器驅動2.6 不同程式語言下使用WebDriver03 Python 基礎3.1 Python 哲學3.2 輸出與輸入3.3 分支與循環3.4 陣列與字典3.5 函數、類別和方法 3.6 模組3.7 例外3.8 本章小結04 WebDriver API4.1 從定位元素開始4.2 控制瀏覽器 4.3 簡單元素操作4.4 滑鼠事件4.5 鍵盤事件4.6 獲得驗證資訊4.7 設定元素等待4.8 定位一組元素4.9 多表單切換4.10 多視窗切換4.11 警告框處理4.12 上傳檔案4.13 下載檔案4.14 操作Cookie4.15 呼叫JavaScript4.16 處理HTML5 的視訊播放4.17 視窗畫面4.18 關閉視窗4.19 驗證碼的處理4.20 WebDriver 原理4.21 本章小結05 自動化測試模型5.1 自動化測試模型介紹5.2 模組化驅動測試實例5.3 資料驅動測試實例5.4 本章小結06 Selenium IDE6.1 Selenium IDE 安裝 6.2 Selenium IDE 介面介紹6.3 建立測試使用案例6.4 Selenium IDE 指令6.5 斷言與驗證6.6 等待與變數6.7 本章小結07 unittest 單元測試架構7.1 認識unittest 7.2 關於unittest 還需要知道的7.3 帶unittest 的指令稿分析7.4 撰寫Web 測試使用案例7.5 本章小結08 自動化測試進階應用8.1 HTML 測試報告8.2 自動發郵件功能8.3 Page Object 設計模式 8.4 本章小結 09 Selenium Grid29.1 Selenium Server 環境設定9.2 Selenium Grid 工作原理9.3 Remote 應用 9.4 WebDriver 驅動9.5 本章小結10 Python 多執行緒10.1 單執行緒的時代10.2 多執行緒技術10.3 多處理程序技術10.4 應用於自動化測試10.5 本章小結11 自動化測試專案實戰11.1 自動化測試使用案例設計 11.2 BBS 社區專案實戰11.3 本章小結12 BDD 架構之Lettuce 入門12.1 什麼是BDD12.2 安裝Lettuce12.3 階乘的實例12.4 Lettuce_webdriver 自動化測試 12.5 本章小結
書名 / | 不止是測試:Python網路爬蟲王者Selenium |
---|---|
作者 / | 蟲師 |
簡介 / | 不止是測試:Python網路爬蟲王者Selenium:贯演唱會的門票,蘋果的手機,網上搶購秒殺怎麼做贯自動登入愛情公寓,選擇年齡居住地,開始幫你狂發信贯進入證交所網站,自動下 |
出版社 / | 佳魁資訊股份有限公司 |
ISBN13 / | 9789863794127 |
ISBN10 / | 9863794120 |
EAN / | 9789863794127 |
誠品26碼 / | 2681390641004 |
頁數 / | 328 |
開數 / | 18K |
注音版 / | 否 |
裝訂 / | P:平裝 |
語言 / | 1:中文 繁體 |
級別 / | N:無 |
內文 : 推薦序
Selenium 一直是網頁開發測試產業界的明星,從WebDriver 時代就獲得不少人的青睞,但是在Selenium 真正併購Webdriver 後,這個產品才算真正完整,再加上瀏覽器端的IDE 等完美結合,讓網路應用程式的測試之路好走不少。
在Stackoverflow 上看到大家的提問,Selenium 大部分是用Java 實作,但這
三年,用Python 的有越來越多的趨勢,筆者在使用Selenium 的期間,一直
納悶怎麼沒有一本完整的書來介紹這個好料,直到今年電子工業出版社,終於有人完成了。
我接觸Selenium 大約有三年的時間,但主要的用途不是測試,而是爬蟲。
對,就是爬蟲。爬蟲是大數據的資料來源之一,很多大數據的網站或教學,都是以爬蟲開始的。筆者早期使用Ruby 的Nokogiri,也使用了Mechanize,都能滿足大部分的需求了,但在這幾年,網頁程式的功能越來越複雜,Nokogiri或是Mechanize 慢慢已經無法滿足要求了。
首先就是使用原理上的大相逕庭。Nokogiri 或Mechanize, 主要只是把
HTML 下載回客戶端,然後再來分析HTML 中的元件,就先不說Captcha
了,連一個簡單的Ajax Call,當你Refresh 網頁時,整個HTML 的內容都變
了,Nokogiri/Mechanize 在遇到這種情況時,就會有很多問題,更不要說麻
煩的Javascript 或是jQuery 了。
Selenium comes to the rescue!
Selenium 是一個以瀏覽器為基礎的爬蟲軟體( 對,不是測試軟體,是爬蟲)。
換句話說,你必須安裝了瀏覽器,才能執行Selenium。WebDriver 支援的瀏
覽器預設為Firefox,但Chrome 和其它瀏覽器都可以,只要你有安裝該瀏覽
器,並且對應到應有的Driver 即可。
有瀏覽器之後,什麼事就變的簡單了。你可以利用WebDriver 提供的各種方法來和網頁上的任何元件互動。要找元素?沒問題,用findElemendById。
要找Javascript ?沒問題,用XSpath 來找,要按「同意授權」?沒問題,
用.click 或是.submit。要抓螢幕上的截圖?沒問題,用save_screenshot。
Selenium 出現之後,我相信你真的不會想再用Nokogiri 或Mechanize 了( 當然簡單的爬蟲還是可以不用牛刀啦)。
Selenium 更提供了非常強大的Python 函數庫, 你可以自定Exception
Condition,可以使用Wait 來等某一個元件的出現( 這在Javascript 流行的當
今太重要了! ),更可以設定重新刷新頁面,或是等待一下,讓你的操作更符合真人的操作,有了Selenium,不要說灌票了,訂票系統,搶購系統,秒殺系統,對你來說真的輕而易舉,快速搶上n 隻新的iPhone 7 都不會太難了。
本書真的算拋磚引玉,因為很多重要的東西也沒提到。和Selenium 搭配最棒的PhantomJS 就沒提。大家都知道許多hardcore 的宅男,他們的開發環境是完全沒有圖型介面的。有了PhantomJS 不但可以不安裝瀏覽器,Selenium 本身沒提供的可變User Agent Header,就可以靠PhantomJS 完成,筆者在使用了PhantomJS 之後,也不再使用Firefox Driver。當然你也可以用Xvfb 來Export Display 給Firefox 使用,稱之為Headless,但還得安裝一大堆有的沒的dependencies,PhantomJS 太方便了。
筆者在配合了OpenCV 之後, 成功破解許多網站的Captcha 機制, 讓
Selenium 搖身一變成為註冊機器人,配合ipython 可以線上開發機器人,配合numpy 可以算出不同圖型的相似度,Selenium 的好處說不完!
更變態的用法,在搭配了Sikuli( 一個MIT 畢業的台灣人寫的) 之後,真的可以說天下無敵了!連Windows/Mac/Linux 的桌面操作或Terminal 操作都能自動化了!這已經超脫了自動化測試或爬蟲的高度,而朝向電腦Robot 的境界前進,當然這一切,你還是要從熟悉Selenium 開始。
本書作者為中國大陸籍,因此全書使用百度為範例,為保留全書的完整性,圖的部分就保持簡體中文介面,相信這小小的差別,是不會影響本書的可看性的。
我,極力推薦這本書!
胡嘉璽