1. 程式人生 > >拼圖式拖動滑塊的驗證——使用selenium+python實現

拼圖式拖動滑塊的驗證——使用selenium+python實現

寫京東登入的自動化測試用例的時候遇到了這樣一個問題

當你不能成功登入多次、就連正確賬戶密碼登入(偶發)的時候,都會出現驗證環節(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.網上檢視其他人的文章,大同小異,基本都需要做一個滑鼠移動的軌跡,這個比較疑惑,不知道為什麼。