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

Selenium中sendKeys方法参数不匹配报错求助

问题修复方案

错误原因

报错核心是类型不匹配:Selenium的sendKeys()方法要求传入CharSequence类型(通常为String),但你的getCellDataasnumber()方法返回的是double数值类型,两者无法直接兼容。


修复方法(两种可选)

方法1:在调用处直接转换类型

将获取到的double数值转为String后传入sendKeys(),代码修改如下:

driver.findElement(By.xpath("//input[@name='capacity']"))
    .sendKeys(String.valueOf(TestData.getCellDataasnumber(1, 3)));

或者用更简洁的拼接方式:

driver.findElement(By.xpath("//input[@name='capacity']"))
    .sendKeys(TestData.getCellDataasnumber(1, 3) + "");

方法2:修改ExcelUtils工具类,直接返回String

如果你的场景主要是为Selenium输入提供数据,建议直接在工具类中返回String类型,避免每次调用都手动转换:

// 修改ExcelUtils中的方法
public String getCellDataAsString(int RowNum, int ColNum) throws Exception {
    try {
        double cellData = ExcelWSheet.getRow(RowNum).getCell(ColNum).getNumericCellValue();
        // 若Excel中是整数,转为int再转String可避免出现25.0这类格式
        return String.valueOf((int) cellData);
        // 如需保留小数,直接用String.valueOf(cellData)即可
    } catch (Exception e) {
        return "0";
    }
}

测试类中调用新方法:

driver.findElement(By.xpath("//input[@name='capacity']"))
    .sendKeys(TestData.getCellDataAsString(1, 3));

额外修正:工具类构造函数拼写错误

你的ExcelUtils类构造函数名写成了Excelutils(小写u),与类名ExcelUtils不一致,会导致编译错误,需修正为:

public ExcelUtils(String Path, String SheetName) throws Exception {
    // 原代码逻辑不变
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 15:06:21