selenium webdriver中的Sendkeys()方法

时间:2014-11-26 08:10:53

标签: selenium selenium-webdriver

sendKeys(CharSequence...)类型中的方法WebElement不适用于参数(double)

wd.findElement(By.id("----")).sendKeys(sheet.getRow(2).getCell(0).getNumericCellValue());

如何从Excel中将数值单元格值转换为sendkeys方法,对于字符串值,它可以正常工作。

现在我正在使用poi jar文件

3 个答案:

答案 0 :(得分:1)

很简单,将数值转换为字符串。像String str ="" +5;

为您的案例使用"" + sheet.getRow(2).getCell(0).getNumericCellValue()

wd.findElement(By.id(" ----&#34))的SendKeys("&#34 + sheet.getRow(2).getCell(0).getNumericCellValue ());

对于数字单元格,apache poi返回double值。要获得精确的双精度值,即没有字符' E',将double值转换为BigDecimal并获取它的字符串表示,如下所示

Double d = 1.234567E8;
String str1 = new BigDecimal(d).toString();
System.out.println(str1);

输出:123456700 那就是

答案 1 :(得分:0)

因为" Sendkeys()"只接受String作为参数,所以如果你想将数值传递给sendkeys,你必须将它转换为String。我将举一个例子来详细解释这一点。

假设你得到" 1455"来自excel,你想将它传递给sendkeys,然后将其转换为String,如下所示:

String num = Double.toString("1455");
webElement.SendKeys(num);

答案 2 :(得分:0)

SendKeys需要传递一个String对象,但是你要传递一个数值。

请改为尝试:

WebElement element = null;
try {
    element = wd.findElement(By.id("----"));
    element.sendKeys(sheet.getRow(2).getCell(0).getStringCellValue());
    );
} catch (Exception e) {
    /* this is thrown if the cell contains a formula that isn't a "string Formula" */
}

请注意,我已更改getNumericCellValue()的{​​{1}}。