自動化測試使用cookie跳過驗證碼
阿新 • • 發佈:2019-01-09
準備工具:
fiddler
Python+selenium
安裝fidder
開始
1、開啟fidder
2、通過瀏覽器登入正常登入百度賬號。像這樣!
3、檢視Fiddler獲取到的登入請求的Cookie。找到Host為“passport.baidu.com”的URL,在右側視窗檢視該請求的Cookie。為什麼是這兩個?(試的<->)
然後,找到重要的兩個引數“BAIDUID”和“BDUSS”。
4、編寫Selenium自動化測試指令碼,跳過登入。
from selenium import webdriver
from time import sleep
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
# 新增Cookie
driver.add_cookie({'name':'BAIDUID','value':'6FC26726C46E744593310AA7515:FG=1'})
driver.add_cookie({'name':'BDUSS','value':'5OYWFSdFJBeTlBMHVGVnhvLWZlUFQ5YUhKN0c3cll5LUhiMUlPYk1RcHNYMGxiQVFBQUFBJCQAAAAAAAAAAAEAAAB2gOWut9y2t7XE0KHQocTxNjIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' })
# 重新整理頁面
driver.refresh()
sleep(5)
# 獲取登入使用者名稱並列印
username = driver.find_element_by_class_name("user-name").text
print(username)
#關閉瀏覽器
driver.quit()
首先,訪問百度首頁,處於未登入狀態。
然後,通過Selenium所提供add_cookie()方法新增Cookie資訊。
最後,重新整理頁面,現在已經是登入狀態了,獲取登入之後的使用者名稱並列印。
注意:
如果是首次抓取https請求不要忘了按照fidder設定抓取https中的方法新增證書,不然fidder是抓取不到cookie的,如下圖