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

JMeter WebDriver Sampler:JavaScript转Groovy脚本报错求助

解决JMeter WebDriver Sampler Groovy脚本类型不匹配错误

报错java.lang.IllegalArgumentException: argument type mismatch的核心原因是Groovy中传递给sendKeys()的参数类型不兼容。

原JavaScript脚本里,['adminstafftest1']这种数组会被Rhino引擎自动转换为Java可识别的CharSequence[]类型,但Groovy里的['adminstafftest1']是一个List对象,和Selenium sendKeys()方法要求的CharSequence或CharSequence[]类型不匹配。

修正后的Groovy脚本(两种可选写法)

写法1:直接传递字符串(推荐,更简洁)

import org.openqa.selenium.By;

def user = WDS.browser.findElement(By.id('loginUserName'));
user.sendKeys('adminstafftest1');

def pass = WDS.browser.findElement(By.id('loginPassword'));
pass.sendKeys('STuser1225');

def login = WDS.browser.findElement(By.id('loginSubmit'));
login.click();

写法2:显式转换为CharSequence数组

如果需要传递多段输入或特殊按键组合,可以把List转为Java数组:

import org.openqa.selenium.By;

def user = WDS.browser.findElement(By.id('loginUserName'));
user.sendKeys(['adminstafftest1'] as CharSequence[]);

def pass = WDS.browser.findElement(By.id('loginPassword'));
pass.sendKeys(['STuser1225'] as CharSequence[]);

def login = WDS.browser.findElement(By.id('loginSubmit'));
login.click();

补充说明

Selenium的sendKeys()方法支持两种参数形式:

  • 单个CharSequence(比如普通字符串)
  • CharSequence[]数组(用于多段内容输入或模拟特殊按键,比如Keys.ENTER)

Groovy中直接传递字符串的写法,和原JavaScript脚本的执行效果完全一致,是最简便的修正方式。

内容的提问来源于stack exchange,提问作者Ajith R

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 23:25:01