【问题标题】:Check if multiple IF statements are all correct, when they aren't an action should come检查多个 IF 语句是否都正确,当它们不是一个动作时
【发布时间】:2023-04-01 04:43:01
【问题描述】:

我正在开发一个自动测试文件,用于检查网页中的特定元素是否使用了正确的 CSS 值。我似乎无法弄清楚如何检查多个 CSS 值以查看它们是否都正确,但最重要的是,当 1 个或多个不正确时,我可以显示不是 100% 的值的消息或错误是目前正确。

这是我现在的代码,

WebElement buttons = driver.findElement(By.className("primaryButton"));
    if (buttons.getCssValue("font-size").equals("14px")) 
    {
        System.out.println("Font-size is correct");
    }       
    if (buttons.getCssValue("color").equals("rgba(255, 255, 255, 1)")) 
    {
        System.out.println("Font-color is correct");
    }
    if (buttons.getCssValue("background-color").equals("rgba(89, 192, 237, 1)")) 
    {
        System.out.println("Background-color is correct");
    }
    if (buttons.getCssValue("border-radius").equals("2px")) 
    {
        System.out.println("Border-radius is correct");
    }
    else 
    {
        System.out.println("Test was not 100% correct, check back to see what value is 
        incorrect");
    }

如果有人可以帮助我,我会很高兴,我不确定它是否 100% 清楚我的问题是什么,但我希望有人能理解。英语不是我的母语。

【问题讨论】:

    标签: java css selenium


    【解决方案1】:

    为什么不嵌套 if 块?

    你可以这样:

     if (buttons.getCssValue("font-size").equals("14px")) 
        {
            System.out.println("Font-size is correct");
            System.out.println("Bot is going to check color now");
            if (buttons.getCssValue("color").equals("rgba(255, 255, 255, 1)")) 
            {
               System.out.println("Font-color is correct");
            } 
            else {
               System.out.println("Font-color is **not** correct");
            } 
        }
      else {
           System.out.println("Test was not 100% correct, check back to see what value is 
        incorrect");
     }  
    

    等等..

    【讨论】:

      【解决方案2】:

      如果您要验证的只是是否满足所有条件,我会更短地执行此操作,如下所示:

      WebElement buttons = driver.findElement(By.className("primaryButton"));
      if(!buttons.getCssValue("font-size").equals("14px") || !buttons.getCssValue("color").equals("rgba(255, 255, 255, 1)") || !buttons.getCssValue("background-color").equals("rgba(89, 192, 237, 1)") || !buttons.getCssValue("border-radius").equals("2px")) 
          System.out.println("Test was not 100% correct, check back to see what value is incorrect");
      

      【讨论】:

        最近更新 更多