艺赛旗(RPA)RPA8.0 解决滑动验证码完整流程
藝賽旗 RPA8.0全新首發免費下載 點擊下載
http://www.i-search.com.cn/index.html?from=line1
Note:
2. 如果沒有將虛擬機與物理機的鼠標進行同步,則可能導致驗證碼識別過程,看不到鼠標點擊拖動的情形,以至于后續無法準確估算鼠標點擊拖動的位置信息。
流程全覽
在這里插入圖片描述](https://img-blog.csdnimg.cn/20190315133737544.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDQ0NzY4Nw==,size_16,color_FFFFFF,t_70)
具體步驟說明
3.1(以本場景為例)打開網站進行驗證碼識別過程
測試地址:‘http://www.jq22.com/yanshi19009’(推薦使用“谷歌瀏覽器”打開)
3.2 基于頁面美觀考慮,我們使用“序列”組件
3.3 激活窗口并截圖
Note:
3.4 識別驗證碼位置
Note:
8000: 滑動驗證碼
8001:坐標驗證碼(成語驗證等)
1004:4 位英文數字
2004:4 位純漢字
3.5 位置處理
獲取鼠標的相對位置信息(坐標僅相對于整個驗證截圖),即鼠標需要實際拖動的距離 = b
輸出結果:
3.6 彈出拖動距離的消息提示框
每次拖動前,彈出位置處理得出的拖動距離。目的:可以更明確每次獲取的位置信息;同時有助于后續多次調節坐標位置
Note:
由下載論壇網站的破解滑動驗證碼工程文件(…/huadong/project.pro)發現如下規律:
同樣的網站截取相同滑動驗證圖片,得到的參數信息并不同。使用原工程中截圖,在本機下執行原工程文件,鼠標不在原來初始位置點擊,而改變網頁整體位置后,可以實現鼠標點中初始位置。界面大致如下:
結論:我們設定計算出的鼠標點擊拖動初始位置信息與電腦顯示屏大小相關
3.7 代碼實現點擊鼠標拖動
代碼如下:
from ctypes import *
from ctypes.wintypes import *
def imouse_drag(x1, y1, x2, y2,button=‘left’,speed=10):
(x1,y1),(x2,y2)分別表示:鼠標移動的初末坐標點
try:dll = windll.LoadLibrary("../Com.Isearch.Func.AutoIt/AutoItX3.dll")對象為:本地的一個動態鏈接庫文件
return dll.AU3_MouseClickDrag(button,x1,y1,x2,y2,speed)使用鼠標點擊拖動方法
except Exception as e:raise e3.8 計算坐標參數值 - 獲取起始位置
在這里插入圖片描述
Note:
實現點擊鼠標拖動的方法,我們需要得到 x1,y1,x2,y2 四個參數值。
由“截圖”控件右邊屬性欄的位置參數信息,可根據以下計算公式得出:
x1 = (左邊位置 + 預估值)/ 2
(預估值:藍色滑塊的水平中心位置)
y1 = y2 = (上邊位置 + 高度 - 預估值)/ 2
(預估值:藍色滑塊的垂直中心位置)
x2 = x1’ + b
(此處 x1’可根據多次滑動驗證與缺口圖準確距離的偏差取平均值)
3.9 異常處理 - 考慮驗證失敗情況
在這里插入圖片描述
思路:
此處用 while 循環,條件設為 True,即:在死循環的條件下進行驗證碼的識別過程,直到識別成功;
同時考慮異常處理的情況:若在驗證過程出現異常,即使用熱鍵 Ctrl+R 刷新頁面,進行下一次循環
完整流程包:
http://support.i-search.com.cn/upload/bbs/20190315/fe10decb07464dfa89ae81e644eda645_huadong.zip
總結
以上是生活随笔為你收集整理的艺赛旗(RPA)RPA8.0 解决滑动验证码完整流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenGL入门北斗星点绘制
- 下一篇: Heartbleed心脏出血漏洞原理分析