关于 If else 条件,我需要有关 Java 的 Selenium 代码帮助

I need help in Code in Selenium with Java regarding If else condition

强文本enter image description here

enter image description here

我需要 Selenium 代码方面的帮助 Java 关于 If else.. 我有两个 WebElements,第一个是“//div[contains(text(),'Report name already exists. Please enter another name.')]”,第二个是“//div//span[contains(text( ),'Grid Report saved successfully.')]" 所以我在这里需要的是,如果第一个元素与文本匹配“报告名称已经存在。请输入另一个名称。”然后执行代码的其余部分,如果第二个元素与文本“Grid Report saved successful.”匹配,则执行编码部分的另一部分。我尝试了 if else 条件,但它不起作用..请任何人有任何想法然后请分享..

如果我的理解是正确的,请尝试下面的代码,它应该可以工作。如果不是,请post你的代码来解决这个问题。

 WebElement element1 = driver.findElement(By.xpath("//div[contains(text(),'Report name already exists. Please enter another name.')]"));
   WebElement element2 = driver.findElement(By.xpath("//div//span[contains(text(),'Grid Report saved successfully.')]"));
   
   if(element1.isDisplayed())
   {
       //first set of code
   }
   else if(element2.isDisplayed())
   {
       //second set of code
   }

没有本机元素来检查元素是否存在您可以使用:

创建函数:

public boolean isElementPresent(By by){
        try{
            driver.findElement(by);
            return true;
        }
        catch(NoSuchElementException e){
            return false;
        }
    }

现在在你的 if 案例中调用它:

 if(isElementPresent(By.xpath("//div[contains(text(),'Report name already exists. Please enter another name.')]")))
   {
       //code
   }
   else if(isElementPresent(By.xpath("//div//span[contains(text(),'Grid Report saved successfully.')]")))
   {
       //code
   }

第二个选项:

List<WebElement> element1 = driver.findElement(By.xpath("//div[contains(text(),'Report name already exists. Please enter another name.')]"));
   List<WebElement> element2 = driver.findElement(By.xpath("//div//span[contains(text(),'Grid Report saved successfully.')]"));

   if(!element1.isEmpty() )
   {
       //first set of code
   }
   else if(!element2.isEmpty())
   {
       //second set of code
   }

第二个选项有更多的处理,所以更推荐第一个

您问题的答案:

         List < WebElement > ifPresent = driver.findElements(By.xpath("//div[contains(text(),'Report name already exists. Please enter another name.')]"));
         if (!ifPresent.isEmpty()) {
             System.out.println("Use this one");
             driver.findElement(By.xpath("//input[@id='btnClose']")).click();
         } else {
             System.out.println("Use this one else");
             Set<String> handles=driver.getWindowHandles();
             
             driver.switchTo().window((String) handles.toArray()[1]);
             
             scrollPageUpByRobotClass();
             driver.findElement(By.xpath("//input[@id='btnAlertOk']")).click();
             driver.switchTo().window((String) handles.toArray()[0]);
         }