我现在搜索了3天。
您好
我想验证如果condition1 AND condition2为true或者condition3 AND condition4为true,我的测试就是Ok。
此代码不返回错误,测试运行已通过,但未返回正确的消息。 它返回“KO,颜色与状态不匹配”。而不是O“好的,颜色是红色,状态是NOK。” 而且我认为如果状态与颜色不匹配,测试也将被传递(??)
感谢您的帮助。
伊莎贝尔。
PS:你可以用法语回答!!
// 1存储状态值
String DisplayedStatus = driver.findElement(By.xpath("//span[@class='eaDetails-ContentRegion-statustext']")).getText();
System.out.println("the status displayed is: " + DisplayedStatus);
// 2存储条形图的颜色
String ColorRed = "rgb(227, 34, 25)";
System.out.println("Red is: "+ColorRed);
String ColorGreen = "rgb(137, 186, 23)";
System.out.println("Green is:"+ColorGreen);
String DisplayedStatusColor = driver.findElement(By.xpath("//div[@class='eaDetails-ContentRegion-bar']")).getAttribute("style");
//System.out.println("Styles of bar is: "+DisplayedStatusColor);
// keep bgcolor only
String BgColor1 = DisplayedStatusColor.split("background-color:")[1];
//System.out.println("Color of bar is: "+BgColor1);
String BgColor = BgColor1.split(";")[0]; // remove the semi comma
System.out.println("Color of bar is: "+BgColor);'
//检查“条形图是否为红色且状态为NOK”或“条形图为绿色且状态正常”。
// assertTrue((BgColor.compareTo(ColorRed) == 0)&&(DisplayedStatus.compareTo("Status: NOK") == 0));
// assertTrue((BgColor.compareTo(ColorGreen) == 0)&&(DisplayedStatus.compareTo("Status: OK") == 0));
if((BgColor.compareTo(ColorRed) == 0)&&(DisplayedStatus.compareTo("Status: NOK") == 0)){
System.out.println("OK, the color is red and the status is NOK.");
}
else {
if((BgColor.compareTo(ColorGreen) == 0)&&(DisplayedStatus.compareTo("Status: OK") == 0)){
System.out.println("OK, the color is green and the status is OK.");
}
System.out.println("KO, the color doesn't match with the status.");
}
}`
答案 0 :(得分:0)
使用更简单的虚拟值替换代码,这样您就可以知道if的行为与预期的一致。逻辑的每个部分都可以用更简单的方式替换。这样你就可以检查你的if逻辑是否正确。 使用像
这样的简单操纵boolean condition1=false; boolean condition2=true;
答案 1 :(得分:0)
有效的代码:
//检查"栏是红色的,状态是NOK"或者"酒吧 是绿色,状态正常"。
String StatusIsOK = "Status: OK"; String StatusIsNOK = "Status: NOK"; if(BgColor.equals(ColorRed)){ assertTrue(DisplayedStatus.compareTo(StatusIsNOK) == 0); System.out.println("OK, the color is red and the status is NOK."); } else{ if(BgColor.equals(ColorGreen)){ assertTrue(DisplayedStatus.compareTo(StatusIsOK) == 0); System.out.println("OK, the color is green and the status is OK."); } else{ System.out.println("FAILURE: the color "+BgColor+" and the status "+DisplayedStatus+" don't match."); } }