之前寫過一篇博客:自動化測試如何解決驗證碼的問題。
介紹了驗證碼的幾種處理方式,最后一種就是通過Cookie跳轉過驗證碼,但講的不夠詳細。今天,就詳細的介紹一下這種方式。
准備工具:
------------------
fiddler
Python+selenium
------------------
以百度登錄為例。
驗證碼是漢字的,我想通過程序識別起來有點難度,也會比較麻煩。
接下來開始動手。
1、開啟Fiddler 工具,像這樣!
2、通過瀏覽器登錄正常登錄百度賬號。像這樣!
3、通過Fiddler獲取登錄請求的Cookie。找到Host為“passport.baidu.com”的URL,在右側窗口查看該請求的Cookie。
然后,找到重要的兩個參數“BAIDUID”和“BDUSS”。
4、編寫Selenium自動化測試腳本,跳過登錄。
from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.baidu.com") # 添加Cookie driver.add_cookie({'name':'BAIDUID','value':'AAAAAAAAAAAAAA:FG=1'}) driver.add_cookie({'name':'BDUSS','value':'AAAAAAAAAAAAAAAAAAAAAAAAAA'}) # 刷新頁面 driver.refresh() # 獲取登錄用戶名並打印 username = driver.find_element_by_class_name("user-name").text print(username) #關閉瀏覽器 driver.quit()
首先,訪問百度首頁,處於未登錄狀態。
然后,通過Selenium所提供add_cookie()方法添加Cookie信息。
最后,刷新頁面,現在已經是登錄狀態了,獲取登錄之后的用戶名並打印。