我有一个值,如果if语句包含等于,但它仍然无法通过测试。请帮助在脚本中找到问题。
我需要if (383797)contains ($ 383,797)
测试应该通过
// Database query to get value
ResultSet rs = stmt.executeQuery(query);
while (rs.next()){
String mytotal = rs.getString(2);
System.out.println(mytotal);
BigDecimal result = new BigDecimal(mytotal);
System.out.println(result+ " convert valueOf to int");
// round of to million
System.out.println(result.divide(new BigDecimal("1000000")).setScale(0, RoundingMode.FLOOR)+" Result 3");
// Database data value
String aarwavalue = (result.divide(new BigDecimal("1000000")).setScale(0, RoundingMode.FLOOR)+"");
System.out.println(aarwavalue);
driver.switchTo().frame("mstrFrame");
//Extract dynamic id for aarawtotal
WebElement extractxpathid = driver.findElement(By.xpath("//span[text()='AA RWA']"));
System.out.println(extractxpathid.getAttribute("id"));
String pathnum = extractxpathid.getAttribute("id");
String[] xpathid = pathnum.split("-");
System.out.println(xpathid[0]);
System.out.println(xpathid[1]);
System.out.println(xpathid[2]);
// UI data
String aarwatotal = driver.findElement(By.xpath("(//td[@class='x-grid-cell x-grid-td x-grid-cell-headerId-gridcolumn-"+xpathid[1]+" x-unselectable'])[last()]//div")).getText();
System.out.println(aarwatotal);
//assert UI value to database value
if(aarwatotal.contains(aarwavalue))
{
Reporter.log("Successfully Database value equal UI value " + aarwatotal);
Add_Log.info("Successfully Database value equal UI value " + aarwatotal);
}
else
{
Reporter.log(" Database value not equal UI value " + aarwatotal +"and"+ aarwavalue);
Add_Log.info("Database value not equal UI value " + aarwatotal +"and"+ aarwavalue);
// Assert.fail();
}
if(aarwavalue.equalsIgnoreCase(aarwatotal))
{
Reporter.log("Successfully Database value equal UI value " + aarwatotal);
Add_Log.info("Successfully Database value equal UI value " + aarwatotal);
}
else
{
Reporter.log(" Database value not equal UI value " + aarwatotal +"and"+ aarwavalue);
Add_Log.info("Database value not equal UI value " + aarwatotal +"and"+ aarwavalue);
//Assert.fail();
}
}
输出
383797521414.9034250
383797521414.9034250 convert valueOf to int
383797 Result 3
383797
gridcolumn-1020-textEl
gridcolumn
1020
textEl
$ 383,797
Database value not equal UI value $ 383,797 and 383797
Database value not equal UI value $ 383,797 and 383797
答案 0 :(得分:1)
值比较返回false
,这就是为什么测试失败的原因。
问题在于逗号,
您可以像这样操作String
aarwatotal
来删除逗号:
String aarwatotal = driver.findElement(By.xpath("(//td[@class='x-grid-cell x-grid-td x-grid-cell-headerId-gridcolumn-"+xpathid[1]+" x-unselectable'])[last()]//div")).getText();
//in the line below we replace the comma with empty String
aarwatotal = aarwatotal.replaceAll(",", "");
之后,aarwatotal
将等于:$ 383797
,现在您可以检查其是否正确包含383797
其余代码可以保持不变。