If-Else条件对我的测试用例不起作用

时间:2014-01-08 06:35:11

标签: java selenium selenium-webdriver

我在我的测试用例中写了一个if-else条件。但是功能没有进入其他条件,它只是寻找if(条件)。我无法弄清楚问题。

将java与selenium webdriver一起使用

public static void afterMenthod()抛出InterruptedException {

    try {

        if (remoteDriver.findElementByName("Confirmation").isDisplayed()) 
        {
            if (remoteDriver.findElementByName("Stop").isDisplayed())
                {
                    remoteDriver.findElementByName("Stop").click();
                }
            else
                {
                    remoteDriver.findElementByName("Resume").click();
                    remoteDriver.findElementByName("Navigate up").click();
                    remoteDriver.findElementByName("Stop").click();
                }

        }

        else if (remoteDriver.findElementByName("TRY AGAIN").isDisplayed())

            {
                System.out
                        .println("There is some problem in deposit transaction");
                remoteDriver.findElementByName("Navigate up").click();
                remoteDriver.findElementByName("Stop").click();
                remoteDriver.findElementByName("Stop").click();

            }
        else if (remoteDriver.findElementByName("NEXT").isDisplayed() || remoteDriver.findElementByName("SUBMIT").isDisplayed() )
        {
            System.out.println("There is some problem in deposit transaction");
            remoteDriver.findElementByName("Navigate up").click();
            remoteDriver.findElementByName("Stop").click();
        }

        else {
            // if(remoteDriver.findElementByName("namaskaar").isDisplayed())

            System.out
                    .println("There is some problem in deposit transaction");
        }
    } finally{

    GeneralMethods.signout();
    System.out.println("Script Over");

}}

它只是查找“确认”元素,如果它没有发现测试失败。

3 个答案:

答案 0 :(得分:1)

尝试检查元素是否显示并启用

WebElement confirmation = remoteDriver.findElementByName("Confirmation");

if ( confirmation.isDisplayed() && confirmation.isEnabled()) {
   ...
}
else {
   ...
}

答案 1 :(得分:0)

“它只是寻找”确认“元素,如果它没有发现测试失败。” - 那是因为如果找不到元素,findElementByName会抛出异常。这就是为什么别人没有得到处理。您需要在代码中使用try-catch-finally。搜索任何论坛,了解如何使用它。

答案 2 :(得分:0)

在catch块中写下你的其他部分。

这样一来,如果发生异常,你的else块就会被执行。

它对我有用。

我的代码在滚动屏幕中查找元素并单击它。

public static void scrollToBeFound(String Value) throws InterruptedException{
            try{
                driver.findElementByName(Value).click();
                Thread.sleep(5000);
            }
            catch(Exception e){
                try{
                    driver.swipe(120,420,120,750,1500);
                    Thread.sleep(3000);
                    driver.findElementByName(Value).click();
                }
                catch(Exception ex){
                    driver.swipe(120,750,120,420,1500);
                    Thread.sleep(3000);
                    driver.findElementByName(Value).click();
                }
            }
            }