做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