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
相关产品推荐
相关产品推荐

