web自動化-selenium攜帶cookie免密登錄


在我們做web自動化的時候,經常會遇到含有登錄的頁面,我們必須登錄之后才能夠對我們想要操作的頁面元素進行定位,也就是說所有的操作都在登錄前提下,其實沒必要每次請求都先登錄,當我們登錄成功了,會在cookie里留下標識符比如token之類的,那么我們直接帶着這些cookie去請求頁面,就可以在cookie有效期內隨時登錄這個系統了(將變量中的cookie裝載到selenium的頭部信息即可)
1.base_url發起請求
2.定位name,password進行send_keys()
3.對登錄按鈕進行click()


driver.find_element_by_xpath('//*[@id="login"]').click()
# time.sleep(3)

time.sleep(5)
#寫入cookie
cookie = driver.get_cookies()
print(cookie)
jsonCookies = json.dumps(cookie)
with open('mycookie.json', 'w') as f:
    f.write(jsonCookies)

4.獲取到瀏覽器cookie,攜帶cookie進行免密登錄


import json
from selenium import webdriver
import time
str = ''
with open('mycookie.json', 'r', encoding='utf-8') as f:
    listCookies = json.loads(f.read())
cookie = [item["name"] + "=" + item["value"] for item in listCookies]
cookiestr = '; '.join(item for item in cookie)
print(listCookies)
driver = webdriver.Chrome()
driver.get(url)
for cookie in listCookies:
    if 'expiry' in cookie:
        del cookie['expiry']
    driver.add_cookie(cookie)
driver.get(url)
driver.close()

這里注意兩點,就是要先打開頁面,裝載cookie成功,再次刷新頁面,另外cookie里有一個key是不能被裝載的,就是expiry,所以先行刪除


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM