導言:在做自動化的過程中,很多時候都需要繞過登錄驗證碼來進行測試,可使用cookie 繞過驗證碼進行登錄。
以下以自己搭建的禪道環境登錄為例(其他網站也可以同樣道理):
#coding=gbk
import os
import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('http://127.0.0.1/zentao/user-login.html')
driver.implicitly_wait(5)
##第一步,打開網頁后先手動輸入用戶名和密碼,獲取到登錄后的cooking
# time.sleep(30)
# cookies=driver.get_cookies()
# for cookie in cookies:
# print(cookie)
##第二步驟,把獲取到的登錄后的cookies復制到文本編輯器中,再通過add_cookie的方法向瀏覽器中添加cookie值,刷新后即可看到效果
#備注:需要手動去掉過期時間,否則會報錯。
driver.add_cookie({'domain': '127.0.0.1', 'httpOnly': True, 'name': 'zentaosid', 'path': '/', 'secure': False, 'value': 'icamp2fhqsbm10lgkjaogpia74'})
driver.add_cookie({'domain': '127.0.0.1', 'httpOnly': False, 'name': 'windowHeight', 'path': '/zentao', 'secure': False, 'value': '675'})
driver.add_cookie({'domain': '127.0.0.1', 'httpOnly': False, 'name': 'windowHeight', 'path': '/zentao/my', 'secure': False, 'value': '675'})
driver.add_cookie({'domain': '127.0.0.1', 'httpOnly': True, 'name': 'device', 'path': '/zentao/', 'secure': False, 'value': 'desktop'})
driver.add_cookie({'domain': '127.0.0.1', 'httpOnly': False, 'name': 'windowWidth', 'path': '/zentao', 'secure': False, 'value': '1036'})
driver.add_cookie({'domain': '127.0.0.1', 'httpOnly': False, 'name': 'lang', 'path': '/zentao/', 'secure': False, 'value': 'zh-cn'})
driver.add_cookie({'domain': '127.0.0.1','httpOnly': False, 'name': 'theme', 'path': '/zentao/', 'secure': False, 'value': 'default'})
driver.add_cookie({'domain': '127.0.0.1', 'httpOnly': False, 'name': 'windowWidth', 'path': '/zentao/my', 'secure': False, 'value': '1036'})
time.sleep(3)
driver.refresh()