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 必须在这里是正确的

⑨ 门店接口请求成功

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

相关推荐
mewowaBc3 小时前
postman使用细则
测试工具·postman·偏差
光影62713 小时前
Unittest单元测试基础速记
测试工具·单元测试·json·测试覆盖率
ZhuoAIStage13 小时前
舞台工艺多专业审图提速:用 AI 智能体编排 A+B+C+G 四段读图流水线
人工智能·自动化·工作流编排·舞台工艺·审图智能体
海绵宝宝的月光宝盒16 小时前
14-AutoCAD-阵列命令应用与案例实战(AR)
经验分享·笔记·自动化·课程设计·制造·学习方法·cad
螺丝钉tina19 小时前
[Playwright][08] Upload 模块自动化:如何设计真实业务测试用例?
运维·自动化·测试用例
xie881018021 天前
正则里的点号不匹配换行:多行模式的开关
运维·服务器·测试工具
实验室管理云平台1 天前
面向高职院校实训场景:实训实验室管理平台整体方案分享
大数据·科技·物联网·自动化
是jin奥1 天前
Claude Code + GitHub 自动化工作流整理
运维·自动化·github
PiaoKe___1 天前
云手机技术解析:从 ARM 虚拟化到 Python 自动化实战
python·智能手机·自动化
yz_aiks1 天前
chrome-use 使用教程:让 Claude Code 操控已登录的 Chrome(禅道、ONES 实测)
chrome·自动化·大模型·ai agent