python_selenium切换不同角色完成web端登录

  做UI自动化测试时,需要登录不同角色来审批流程,由于项目登录只能通过移动端扫码,

或是接收真实手机验证码才能登,给自动化流程带来不便,后来想到可以使用接口获取token,

再将token写入到浏览器刷新,经过实验成功实现了

以下2个函数封装在2个模块中

import jsonpath
import requests
from conf import Setting
from selenium import webdriver
class HandleData():
  def get_token(self,user_id):
      """ 请求接口,获取token """
   url = Setting.okr_token_url
  headers = {"Content-Type": "application/json"}
  data = {"userId": user_id}
  res = requests.post(url=url, json=data, headers=headers).json()
    # 将token保存为类属性
  HandleData.token_value = jsonpath.jsonpath(res, "$..data")[0]
  
  def open_chrome(self):
   """ 给浏览器添加token,打开浏览器 """
   self.driver.get(Setting.h5_url)
   self.driver.delete_all_cookies()
   token = {'name': 'X-Auth-Token', 'value':getattr(HandleData,'token_value')}
  while True:
      #添加token到浏览器中
  self.driver.add_cookie(token)
  self.driver.refresh()
   time.sleep(1)
   token_v = self.driver.get_cookie('X-Auth-Token')
       # 添加成功,循环结束
   if token_v != None:
   # print('token值为:{}'.format(token_v))
   break
 
posted @ 2021-07-28 12:48  清晨丶玫瑰  阅读(541)  评论(1)    收藏  举报