web自動化-selenium攜帶cookie免密登入
阿新 • • 發佈:2021-06-23
在我們做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,所以先行刪除