這幾天北京下大雨了,現在的自己已經圓滿的成爲了“北漂”,最悲催的上班不小心滑倒了,手劃到了瓷磚上,去醫院縫了好幾針,哇~ 那感覺feel倍爽 。最近出了新項目,做了一點自動化,在這裏用單手秀了一波“走位”------繞過驗證碼登錄。
在這裏總結了常見的幾種方法,僅供參考。
話不多說,開整!
方法一
去掉驗證碼。讓開發在測試版上面的驗證碼註銷掉,
方法二
萬能碼。增加萬能碼,系統只要是識別到這組碼,就能允許通過。
方法三
通過Cookie跳過登錄驗證碼
1、首先下載Fiddler。地址:鏈接:https://pan.baidu.com/s/16SqhAnG1t2HvFOwkJroW_g 密碼:1l02
2、進入fiddler,首先獲取證書,Tools-->Fiddler Options-->Https,勾選Decrypt Https traffic-----ok
3、瀏覽器進入百度首頁,點擊登錄按鈕,輸入相關信息,點擊登錄按鈕
4、在fiddler右側的Inspectors-->Cookies查看
注意:百度登錄重點查看BAIDUID和BDUSS。如果要測試其他項目,最好先詢問一下開發,哪些數據是用戶名和密碼的,或者是必需的。我們的項目主要看websid,我們因爲未完成後臺識別到websid就能登陸進去的這個功能,我只能用前兩種方法,這個最好問一下開發,所以這裏,只能用百度實踐一下。
代碼如下:
# -*- coding:utf-8 -*-
from selenium import webdriver
from time import sleep
driver = webdriver.Firefox()
driver.get("https://www.baidu.com/")
# 手動添加cookie
driver.add_cookie({'name': 'BAIDUID', 'value': '46CD04C900...(2825A0E64560C87243BDAF2F6CE0F7F7:FG=1)'})
driver.add_cookie({'name': 'BDUSS', 'value': 'DBZOWVJM3ZWT0w3aDRlR3lTQzBxb2c1RnRXSH4yVzM5eEtBNFZFSX5FVFZ3SHhiQVFBQUFBJCQAAAAAAAAAAAEAAABb09~Jc3VudGFvYmFieTE5OTUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANUzVVvVM1VbO'})
sleep(2)
driver.refresh() #刷新
sleep(3)
driver.quit()