1. 程式人生 > 其它 >web自動化-selenium攜帶cookie免密登入

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,所以先行刪除