如何使用Selenium自動化測試工具獲取動態圖片驗證碼?
關於圖片驗證碼的文章,我想大家都應該看過類似的文章了。 加我VX:atstudy-js 回覆“測試”,進入 自動化測試學習交流群~~
OCR
OCR是一種影像文字識別的技術,例如圖中的驗證碼,我們用肉眼識別就是c5s3,但機器可不比我們們肉眼。所以我們要利用ocr技術,讓我們的Python指令碼自動通過圖片識別出對應的文字。
常見的識別類庫
在Python中其實有許多識別類庫,這裡只介紹博主自己實踐過的成功率還不錯的: 百度ocr。
簡單的說,就是百度提供了一個SDK,讓我們傳入圖片資料,從而拿到識別的結果。ocr的細節我們不需要關心。
申請開通OCR
首先我們得有一個百度賬號,這個相信大家都有,沒有的可以申請一個。
登入百度控制檯,進入並登入。
選擇文字識別:
·appid
·apikey
·secret key
熟悉OCR文件
官方文件地址:
文件會寫的比較清楚,簡單的說就是通過你的appid,api key和secret key獲取一個client,接著你就可以呼叫client的api去獲取圖片中的文字了。官方的SDK還是比較貼心的。
·安裝 SDK
pip install baidu-aip
講完了文字怎麼識別,接著就來說說標題中的動態圖片驗證碼。
動態圖片驗證碼
這個概念是我自己命名的,一般來說,我們的一張圖片都是對應唯一一個 url 的,比如:
https://yuque.com?image=dshqadiau
(這個地址是我編的)一般來說 image 欄位的值不同,圖片也就不同,都是一串隨機的或者規律的不重複資料,確保圖片不會重複。
但是博主最近遇到了這樣一種情況:
輸入一個 url,每次輸入,拿到的圖片都不一樣。
這樣就會帶來一個很嚴重的問題,頁面上你雖然讀取了圖片的資訊。我們把圖片的url 傳遞給百度 sdk 的時候,url 由於再次呼叫,導致圖片發生了變化。
比如網站上顯示的是: c5s3,呼叫百度 sdk 的時候,百度會通過 url 讀取圖片,但再次讀取,圖片可能變成了 lfew。
不信大家可以看看這個圖片地址:
好在百度 sdk,他不僅僅支援 url,還支援圖片檔案和 base64 的圖片資料。我們看看官方文件:
思考一下:
1.讀取 img 標籤的 src,然後下載圖片,儲存圖片檔案再轉為 base64,很顯然這個方法行不通,為什麼呢?
因為 img 的 src 屬性就是剛才這個 url,你去獲取一遍 url,它同樣會變化。
2.截圖,裁剪出驗證碼部分,扔給百度去識別可行是可行,但是會不會太複雜了?
如果我只對驗證碼的 img 元素進行截圖,生成 base64 的資料是不是更方便?
其實呢,selenium 作為一款老牌的自動化測試工具,很多方法供大於求了。所以它是有這樣的功能的!
最後:
可以我的個人V:atstudy-js,可以免費領取一份10G軟體測試工程師面試寶典文件資料。以及相對應的視訊學習教程免費分享!,其中包括了有基礎知識、Linux必備、Mysql資料庫、抓包工具、介面測試工具、測試進階-Python程式設計、Web自動化測試、APP自動化測試、介面自動化測試、測試高階持續整合、測試架構開發測試框架、效能測試等。
這些測試資料,對於做【軟體測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31407649/viewspace-2888709/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- python自動化測試工具selenium使用指南Python
- selenium自動化測試
- selenium自動爬取網易易盾的驗證碼
- 介面自動化測試錄製工具,讓python selenium自動化測試指令碼開發更加方便Python指令碼
- 自動化測試框架Selenium的使用——安裝Selenium框架
- Selenium自動化測試(3)
- 自動化測試中的驗證碼處理
- Java + Selenium + OpenCV解決自動化測試中的滑塊驗證JavaOpenCV
- python3 使用 Selenium 自動化測試或爬取資料Python
- 自動化測試時對驗證碼的處理
- Selenium自動化測試網頁網頁
- selenium+python自動化測試Python
- java+selenium 自動化測試Java
- 使用Selenium自動化測試SAP CRM WebClient UIWebclientUI
- 使用 Python 和 Selenium 自動化網頁測試Python網頁
- Helix QAC—原始碼級靜態自動化測試工具原始碼
- Selenium用法詳解 - - selenium自動化測試概要
- Web自動化-Selenium自動化測試-4-編寫測試用例Web
- Selenium用法 - - 自動化測試介紹
- 自動化測試 selenium 環境搭建
- Python web自動化爬蟲-selenium/處理驗證碼/XpathPythonWeb爬蟲
- 測試開發之自動化篇-使用Selenium IDE錄製指令碼IDE指令碼
- 驗證碼處理在自動化測試中的應用
- selenium模組,web自動化,獲取標籤頁Web
- Playwright自動化測試工具之高階使用
- 用python實現selenium 自動化測試Python
- 如何獲取自動化測試實戰經驗
- 自動化測試進階課程——Selenium自動化測試通關實戰班
- 自動化測試工具QTPQT
- ui 自動化有必要更換並驗證圖片嗎UI
- 自動化驗證碼登入如何實現?
- 短影片app原始碼,圖形和簡訊驗證碼的自動識別獲取APP原始碼
- appium 自動化測試,無法獲取具體元素APP
- python+selenium UI自動化測試環境搭建及使用PythonUI
- 自動化運維:使用Maven與Docker執行Selenium測試運維MavenDocker
- Web自動化-Selenium自動化測試-1-主要學習計劃Web
- 滴滴雲控制檯 Selenium 自動化測試初探
- Selenium+Java自動化測試常用的方法Java