使用场景
在面对需要账号密码登录的网页时,可以通过定位输入框,使用send_keys
输入账号密码登录。
但是在面对某些无法通过页面直接登录的场景,比如需要微信或者软件扫码、验证码等才能进入页面的情况时,就可以通过cookie进行登录。
本文主要介绍通过记录上一次登录网页的cookie,在cookie生效期间直接绕过登录页面直接进入系统的登录方式。
举例如下:
登录页面后获取登录的cookie
from selenium import webdriver
import json
def get_cookies(url):
driver = webdriver.Chrome()
driver.get("url")
driver.delete_all_cookies() # 删除所有cookies
print("+++++++++++++++++++++++请登录+++++++++++++++++++")
print("+++++++++++++++++++++++输入登录的环境后回车+++++++++++++++++++")
environment = input()
cookies = driver.get_cookies() # 获取cookie,以字典方式返回
if environment in ['测试', 'test']:
with open("cookies_test.txt", "w") as f:
f.write(json.dumps(cookies)) # json.dumps:将字典变成字符串
f.close()
driver.quit()
读取之前存入的cookie
from selenium import webdriver
import json
from time import sleep
def login(url):
driver = webdriver.Chrome()
driver.get("url")
driver.delete_all_cookies() # 删除所有cookies
with open("cookies_test.txt", "r") as f:
cookies = json.load(f) # 将文件字符串转换成python对象
for cookie in cookies:
driver.add_cookie(cookie)
sleep(5)
driver.refresh()
sleep(10)
driver.quit()
这样只要记录的cookie生效,那么就可以不用每次进入系统时都需要在登录页面登录啦~