比较网站和Excel数据之间的数据

时间:2014-03-04 09:36:19

标签: java excel selenium selenium-webdriver

我正在使用assert()(TestNG)比较文本框值和excel表中的值 我面临的问题是即使excel和网站文本框中的值相同也显示错误 - java.lang.AssertionError:expected [0.02]但找到[0.0200]

enter image description here

HTML CODE:

<input id="ctl00_ContentPlaceHolder1_txtBlackCost1" class="textboxnew" type="text"
 style="width:50px;text-align: right" onblur="AllowNumber(this,this.value);
 CallonBlur(this.value,'spn_Black_1');
 Calculate_BlackChargeableRate(this.value,1,'cost');" maxlength="12" value="0.0200"
 name="ctl00$ContentPlaceHolder1$txtBlackCost1"> 

Selenium代码:

public static void CompareStringTextByID(String xlpath,String sheetName,int rownum,int cellnum,String LocationName,String WebelementID)
{
    WebElement TxtBoxContent = driver.findElement(By.id(WebelementID));
    String Content = TxtBoxContent.getAttribute("value");
    String ExcelData = Generic.getXlCellValue(xlpath, sheetName, rownum, cellnum);
    Assert.assertEquals(Content, ""+ExcelData);
    Reporter.log(LocationName+" Data Verification -- PASS",true);
}

3 个答案:

答案 0 :(得分:0)

您正在比较字符串,而不是数字。 “0.2”与“0.200”不同。

在比较之前尝试将它们转换为小数。

DecimalFormat df = new DecimalFormat("0.00");
df.setMaximumFractionDigits(2);
String decimal = df.format(someString);

理想情况下,创建BigDecimal个对象并进行比较。

答案 1 :(得分:-1)

更改电子表格中的格式以匹配测试中的格式。或者反过来如果我读错了。它们都需要小数点后两位。至少这是我认为的。

答案 2 :(得分:-2)

如果要比较整数,请在比较之前将字符串转换为整数,这样可以帮助您减少混淆 将sting转换为Double请使用

double aDouble = Double.parseDouble("0.02");