python脚本获取cookie写入本地

自己负责的一个项目接口有token验证,登录功能(获取token)是相当于一个通用的第三方,点击登录按钮跳转公共的登录平台,登录完后再跳转回来。所以导致本地开发的时候,无法登录完后,直接跳回本地页面。
所以最开始都是手动在测试环境登录,复制浏览器的token,粘贴到本地,每次手动复制有点麻烦,就想到了python脚本自动登录并获取到token写入本地文件。

import json
from selenium import webdriver
import time
from selenium.webdriver.common.by import By
def login_fr(url, username, password):
    options = webdriver.ChromeOptions()
    options.add_experimental_option('detach', True)
    driver = webdriver.Chrome(options=options)
    #打开登录页面
    driver.get('https://baidu.com')
    time.sleep(2)
    # 点击登录按钮,跳转第三方通用登录页面
    login1_btn = driver.find_element(By.CLASS_NAME, "login_loginBtn_esRBZ")
    login1_btn.click()
    time.sleep(2)
    # 获取用户名,密码,登录按钮的dom元素,填入账号,密码,并点击登录按钮
    user_input = driver.find_element(By.ID, "basic_mobile").send_keys(username)
    pw_input = driver.find_element(By.ID, "basic_password").send_keys(password)
    login_btn = driver.find_element(By.CLASS_NAME, "loginButton")
    time.sleep(2)
    login_btn.click()
    time.sleep(2)
    return driver

if __name__ == '__main__':
    #这里是第三方登录地址,填入的账号及密码
    aim_url = {
    'url': 'https://baidu.com',
    'username': '123456789',
    'password': 'qwe123'
    }
    driver = login_fr(aim_url['url'], aim_url['username'], aim_url['password'])
    time.sleep(1)
    #将获取到的token填入本地
    def alter(file,session,xsrf):
      file_data = ""
      with open(file, "r", encoding="utf-8") as f:
        for line in f:
            if session in line:
                line = "  Cookie.set('SESSION', '" + driver.get_cookies()[1]["value"] + "')" + "\n"
            if xsrf in line:
                line = "  Cookie.set('XSRF-TOKEN', '" + driver.get_cookies()[0]["value"] + "')" + "\n"  
            file_data += line
      with open(file,"w",encoding="utf-8") as f:
        f.write(file_data)
    alter("D:/work/myProject/src/main.js", "Cookie.set('SESSION'", "Cookie.set('XSRF-TOKEN'")
    from selenium import webdriver

你可能感兴趣的:(python,开发语言)