以前寫過一篇博客:自動化測試如何解決驗證碼的問題。html
介紹了驗證碼的幾種處理方式,最後一種就是經過Cookie跳轉過驗證碼,但講的不夠詳細。今天,就詳細的介紹一下這種方式。web
準備工具:瀏覽器
------------------cookie
fiddler工具
Python+selenium測試
------------------ui
以百度登陸爲例。spa
驗證碼是漢字的,我想經過程序識別起來有點難度,也會比較麻煩。code
接下來開始動手。htm
一、開啓Fiddler 工具,像這樣!
二、經過瀏覽器登陸正常登陸百度帳號。像這樣!
三、經過Fiddler獲取登陸請求的Cookie。找到Host爲「passport.baidu.com」的URL,在右側窗口查看該請求的Cookie。
而後,找到重要的兩個參數「BAIDUID」和「BDUSS」。
四、編寫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信息。
最後,刷新頁面,如今已是登陸狀態了,獲取登陸以後的用戶名並打印。