You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Appium+Java+Cucumber框架调用JavascriptExecutor报jse为null空指针异常

异常根因

该空指针异常的核心诱因是SignUp类中声明的driver变量从未被初始化,始终为null:

  • 你在SignUp类中单独定义了public AppiumDriver<MobileElement> driver;变量,但构造函数仅完成了baseSetUp的赋值,没有给当前类的driver做任何初始化操作。执行JavascriptExecutor jse = (JavascriptExecutor) driver;代码时,调用的是这个未赋值的空driver,强转后得到的jse自然为null,调用方法就会抛出空指针。
  • 额外排查点:你编写的JS执行语句也存在语法错误,无法完成给禁用输入框赋值的需求。

修复方案

1. 修复空指针问题

二选一即可:

  • 直接从已初始化的baseSetUp中取driver:将JavascriptExecutor jse = (JavascriptExecutor) driver;替换为JavascriptExecutor jse = (JavascriptExecutor) baseSetUp.getDriver();
  • 在SignUp类构造函数中补充赋值:在构造函数内增加一行this.driver = baseSetUp.getDriver();

2. 修复日期赋值逻辑

因为输入框是禁用状态,需要先移除禁用属性再赋值,修正后的代码如下:

// 先移除输入框的disabled属性
jse.executeScript("arguments[0].removeAttribute('disabled');", element);
// 给输入框赋值正确日期
jse.executeScript("arguments[0].value = '" + date + "';", element);

内容的提问来源于stack exchange,提问作者Asanga Korala

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 00:36:03