selenium驗證碼處理之cookie登錄


在實際測試中會經常見到登錄操作需要驗證碼驗證登錄

常見驗證有以下幾種:

  1. 驗證碼登錄
  2. 圖片識別  

           

  3. 圖片滑塊識別驗證

                  

 

      4.簡單驗證碼計算

針對上面的登錄驗證解決辦法有以下幾種:

1.讓開發去掉驗證碼(注釋掉驗證碼相關代碼)

2.設置萬能驗證碼  (只適用於第一種驗證碼)

3 .驗證碼識別技術 (主要針對圖片識別)

       python的pytesseract庫用於驗證碼識別

4.使用cookie記錄登錄,自動化腳本繞過驗證環節

下面主要介紹使用cookie登錄,以博客園為列,其他解決辦法后面有時間再進行補充:

博客園登錄驗證為上圖第三種:圖片滑塊識別驗證

博客園登錄頁面:

 

第一步:獲取cookie

首先編寫登錄腳本如下:

 ##登錄時記得選擇記住密碼

 1 from selenium import webdriver
 2 from time import sleep
 3 
 4 Dirver = webdriver.Chrome()
 5 Dirver.maximize_window()
 6 Dirver.get("https://account.cnblogs.com/signin")
 7 Dirver.implicitly_wait(10)
 8 Dirver.find_element_by_id('LoginName').send_keys('username')
 9 Dirver.find_element_by_id('Password').send_keys('password')
10 sleep(60)
11 
12 #代碼運行到此處時,手動點擊登錄按鈕並進行圖片滑塊驗證,完成后,以下代碼會獲取登錄成功后的頁面cookie
13 
14 cookies = Dirver.get_cookies()  
15 print(cookies)
16 Dirver.quit()


第二步:根據獲取的cookie進行登錄

 

 1 from selenium import webdriver
 2 from time import sleep
 3 
 4 
 5 Dirver = webdriver.Chrome()
 6 Dirver.maximize_window()
 7 Dirver.get("https://home.cnblogs.com/")
 8 Dirver.implicitly_wait(10)
 9 Dirver.add_cookie({'name':' ','value':''})  #輸入第一步得到的值
10 Dirver.add_cookie({'name':'','value':''})
11 sleep(10)
12 Dirver.get("https://home.cnblogs.com/")
13 username = Dirver.find_element_by_css_selector('#header_user_right a:nth-child(2) ').text  #獲取用戶名
14 print(username)
15 welcome = Dirver.find_element_by_id('header_user_left').text
16 print(welcome)  #獲取歡迎字樣
17 sleep(3)
18 
19 Dirver.quit()

登陸成功后的頁面如下:

 

關於自動化測試中的驗證碼登錄的其他解決辦法后續將一一補充

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM