selenium自动化调用接口为null问题处理

某系统http://192.168.2.114:10018/\*\*\*nt/#/login

手动请求门店接口:http://192.168.2.114:10018**vice/api/user/doFbmCheckUser

但是,自动化浏览器的门店请求接口:http://null/**rvice/api/user/doFbmCheckUser,导致自动化失败

解决:

✨public设置一个公用函数(根据自己的实际框架)

python 复制代码
# @file:js_inject.py

def fix_base_url(driver, ip, port):
    driver.execute_script(f"""
    localStorage.setItem('baseIP', '{ip}');
    localStorage.setItem('basePostPort', '{port}');

    if (window._config) {{
        window._config.baseURL =
          `http://${{localStorage.getItem("baseIP")}}${{
            localStorage.getItem("basePostPort")
              ? ":" + localStorage.getItem("basePostPort")
              : ""
          }}/iPOSService`;
    }}
    """)

在测试用例层级进行调用(示例)

python 复制代码
login = LoginPage(driver)

# ① 打开页面
driver.get(url)

# ②③ 输入账号密码
login.input_account("test1")
login.input_password("******")

# ④ 在点门店之前修正 baseURL
fix_base_url(driver, "192.168.2.114", "10018")

# ⑤ 点击门店输入框(触发校验 + 门店接口)
login.click_store_input()

# ⑥ 等门店列表出现(可选)
wait_store_loaded(driver)

# ⑩ 点击登录
login.click_login()

完整的生命周期:

① 页面加载

② 输入账号

③ 输入密码

④ (此时还没校验账号密码)

⑤ 点击【门店输入框】

→ 触发后端接口

→ 后端校验账号 + 密码

⑥ 校验成功

→ 返回用户信息

→ 返回该用户可见的门店列表

⑦ 前端开始拼接 baseURL

→ 准备调用 doFbmCheckUser

⑧ ⭐ baseURL 必须在这里是正确的

⑨ 门店接口请求成功

⑩ 点击【登录】按钮(只是最终确认)

相关推荐
2601_960567966 小时前
电商套图自动化效率的工程量化分析——从逐张生成到批量套图的架构演进
运维·架构·自动化
我的xiaodoujiao7 小时前
API 接口自动化测试详细图文教程学习系列32--Allure测试报告2
python·学习·测试工具·pytest
HiDev_7 小时前
【非标自动化】2、认识元器件(确定目标)
运维·自动化
一次旅行8 小时前
Python+大模型端到端自动化日报系统
开发语言·python·自动化
我送炭你添花9 小时前
工业现场疑难软故障实录:09 老旧产线,稳定裕量已经被吃光了
机器人·自动化·智能工厂
AOwhisky10 小时前
Python 学习笔记(第十五期)——运维自动化(下·后篇):堡垒机实战——paramiko高阶篇
运维·python·学习·云原生·自动化·运维开发
Urbano10 小时前
夹克与商务单西口袋工序自动化技改研究报告
运维·自动化
ClouGence14 小时前
哪些场景适合做自动化测试?这 4 类最值得优先投入
selenium·测试
测试老哥16 小时前
接口自动化测试分层设计与实践总结
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试