webDriver java selenium:if / else with asserttrue assertEquals and condition or / and

时间:2016-09-22 10:16:26

标签: java if-statement webdriver

我现在搜索了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.");
  } 
}`

2 个答案:

答案 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.");
      }           
  }