selenium滑動驗證碼

2021-10-01 19:36:01 字數 1576 閱讀 5115

最好是在測試的時候遮蔽掉滑動驗證。

滑動驗證碼的驗證,可用selneium的click_and_hold 和move_by_offset來實現,其中click_and_hold(target).perform()模擬滑鼠左鍵按下,抓住滑動塊,move_by_offset來實現滑動塊的相對位移

actionchains(driver).move_by_offset(xoffset=x,yoffset=0).perform()
源**參考,其中的get_track是獲取整個滑動條的多個焦點,模擬滑鼠的慢慢滑動。

# coding:utf-8

"""author:@

"""'''先加速後減速'''

from selenium.webdriver import actionchains

from selenium import webdriver

import time

driver=webdriver.chrome()

driver.get("")

time.sleep(1)

driver.find_element_by_xpath('//*[@id="normallogin"]').click()

time.sleep(1)

huakuai=driver.find_element_by_xpath('//*[@id="nc_1_n1z"]')

def get_track(distance): # distance為傳入的總距離

# 移動軌跡

track=

# 當前位移

current=0

# 減速閾值

mid=distance*4/5

# 計算間隔

t=0.2

# 初速度

v=0while currentif current# 加速度為2

a=2else:

# 加速度為-2

a=-3

v0=v

# 當前速度

v=v0+a*t

# 移動距離

move=v0*t+1/2*a*t*t

# 當前位移

current+=move

# 加入軌跡

return track #list 返回的是整個滑動條的多個焦點,可以模擬滑鼠的緩慢滑動

def move_to_gap(slider,tracks): # slider是要移動的滑塊,tracks是要傳入的移動軌跡

actionchains(driver).click_and_hold(slider).perform()

for x in tracks:

actionchains(driver).move_by_offset(xoffset=x,yoffset=0).perform()

time.sleep(0.5)

actionchains(driver).release().perform()

if __name__ == '__main__':

move_to_gap(huakuai,get_track(340))

滑動驗證碼

通過檢視網頁可以發現滑動驗證碼的由兩張組成。需要注意的是在檢視是可以發現每張是由52張小組合而成。而每一張小其實都是一樣的,通過偏移拼接出了正常的。background images driver.find elements by xpath div path location x int re.f...

滑動驗證碼

自己研究 jquery拖拽滑動驗證碼外掛程式 slideunlock.js 原理 別人說 響應時間,拖拽速度,時間,位置,軌跡,重試次數等。這些因素能夠構成乙個取樣結果或者辨識特性。只獲取到滑動時間,滑動的長度。效果 html頁面 拖動滑塊驗證 css樣式 slider slider bg labe...

selenium驗證碼處理

在爬蟲過程中經常遇到驗證碼,如何處理驗證碼就顯得很重要 現在來說貌似沒有完美的解決方案,很多都是通過第三方平台來實現驗證碼的驗證 將獲取的驗證碼的url傳送到第三方平台,接收平台返回的驗證碼,貌似很簡單的樣子。這只是對靜態的驗證碼的一種處理手段,如果遇到動態的驗證碼怎麼辦呢?你看到的驗證碼和發給平台...