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