断言失败。无法确定为什么?

时间:2012-12-11 14:57:36

标签: testing automation testng assert

我有以下代码。

String rowNum = Integer.toString(rand.nextInt(max - min + 1) + min);
WebElement randomRow = driver.findElement(By.xpath("/html/body/div/div/div/div/form/div/div[2]/div/div[2]/div/div/div/div/div/div/div/table/tbody/tr["+rowNum+"]/td/div/input")); 
Assert.assertEquals(randomRow.getAttribute("checked").equals("checked"), "checked", "YES is not selected");

基本上randomRow是一个表中的随机行,我正在检查第一列中有一个单选按钮。单选按钮的属性应为checked =“checked”。

当测试遇到断言时,它失败并出现以下情况:

YES is not selected expected [checked[ but found ]false]

关于为什么这个断言失败的任何想法?

1 个答案:

答案 0 :(得分:1)

你的断言失败了,因为你正在比较两个对象的身份,一个布尔值和一个字符串。你应该比较一个布尔值或一个字符串。

randomRow.getAttribute("checked").equals("checked") 

返回一个布尔值,你将它与字符串“checked”进行比较。你的断言应该是:

如果要检查该行是否具有“已​​检查”属性,则可以更简洁地编写断言:

Assert.assertEquals(randomRow.getAttribute("checked"), "checked", "YES is not selected");