拼圖式拖動滑塊的驗證——使用selenium+python實現
阿新 • • 發佈:2018-12-12
寫京東登入的自動化測試用例的時候遇到了這樣一個問題
當你不能成功登入多次、就連正確賬戶密碼登入(偶發)的時候,都會出現驗證環節(PS.當然也有死活不出現的時候,比如寫文的今天9月30),妥妥阻擋了自動化測試的腳步。
於是我們可以怎麼使用selenium+python來完成模擬拖動→自動化驗證呢?
一開始的想法是:計算空缺的位置出現規律,每次遇見的時候做判斷,然後將空缺的位置提取出來,讓拼圖塊移動到指定位置完成驗證。但事情並不這麼簡單。
以下是京東的驗證截圖:
拖拽
給它們幾個簡稱,A是我們要進行拖動的滑動塊,B是圖片中的缺失的拼圖塊,C是圖片中的空缺的部位空缺塊
我們做驗證的時候是要拖拽A,使B跟著移動,直到B和C重合,釋放A,即完成認證。
經過分析:
1.A和B是同時進行水平移動的,當拖動A,AB位置一起變化時,left的變化是一樣的
2.京東的驗證其實還是比較簡單的,B到C的位置就是一個水平移動,left的變化,並不需要做垂直方向
3.C的位置目前來看,top是固定的,也是隻有水平left在變化
4.C出現的位置貌似是水平的任意位置,相當於left是圖片範圍內random出來的
5.B的形狀是固定的
總結:
1.random的left就沒辦法抓出規律了
2.如果要堅持拖拽前做C的位置判斷,那應該需要圖片識別技術,可以使用畫素點來判斷,有點難度
目前只進展到這裡,仍在不斷試錯中,後續更新...
PS.網上檢視其他人的文章,大同小異,基本都需要做一個滑鼠移動的軌跡,這個比較疑惑,不知道為什麼。