1. 程式人生 > >自動化測試使用cookie跳過驗證碼

自動化測試使用cookie跳過驗證碼

準備工具:

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的,如下圖