首页 > 解决方案 > 如何使用 java / selenium 在 for 循环中添加条件

问题描述

我想单击“添加”按钮添加项目,如果单击“添加”按钮显示错误,则应删除该添加的项目,然后再次单击“添加”按钮以添加项目

这是我的代码:

    driver.findElement(By.id("addItem")).click(); // it will add item 

    WebElement errrmsg = driver.findElement(By.id("sameAMC-invalid"));


     /* if error is displayed then it should remove added item and should
      *again add another item again clicking on add item button and should again check
      *whether it is showing error message or not if not then else condition should get
      *execute*/

    if(errrmsg.isDisplayed()) 
    {
        driver.findElement(By.id("remove-Itemadd")).click();
        Thread.sleep(2000);
    }
    else
    {
        driver.findElement(By.id("button-payment")).click(); 
        Thread.sleep(6000);

    }

我想在发生错误时设置循环条件,即它应该再次单击添加项目按钮,并且它应该检查它是否显示任何错误,如果没有,那么它应该在其他条件下执行.....我不知道如何做到这一点...需要帮助

标签: javaselenium

解决方案


试试这个代码:使用findElements而不是findElement

     driver.findElement(By.id("addItem")).click();
     while(true) {
        List<WebElement> errMsg =   UI.getdriver().findElements(By.id("sameAMC-invalid"));
        if(errMsg.size()==1) {
                driver.findElement(By.id("remove-Itemadd")).click();
                Thread.sleep(2000);
                driver.findElement(By.id("addItem")).click(); 
        }
        else if(errMsg.size() == 0 ) {
            driver.findElement(By.id("button-payment")).click(); 
            Thread.sleep(6000);
            break;
        }
    }  

注意:@Murthi 提供的代码会失败,如果没有错误消息。


推荐阅读