当断言失败时,循环停止

时间:2016-06-07 12:20:59

标签: java selenium-webdriver

有一个excelsheet,其中所有URL(16)都列在一列中。现在,一旦加载页面,需要验证页面标题是否与已存储在excel中的预期标题匹配。我能够使用for循环执行它。它会运行所有URls(如果全部通过)但在失败时停止。我需要完全运行它并提供一个通过但失败的报告。我写了下面的代码。

        rowCount = suite_pageload_xls.getRowCount("LoadURL");

        for(i=2,j=2;i<=rowCount;i++,j++) {
            String urlData = suite_pageload_xls.getCellData("LoadURL", "URL", i);
            Thread.sleep(3000);
            long start = System.currentTimeMillis();
            APP_LOGS.debug(start);
            driver.navigate().to(urlData);
            String actualtitle = driver.getTitle();
            long finish = System.currentTimeMillis();
            APP_LOGS.debug(finish);
            APP_LOGS.debug(urlData+ "-----" +driver.getTitle());
            long totalTime = finish - start;
            APP_LOGS.debug("Total time taken is "+totalTime+" ms");

            String expectedtitle = suite_pageload_xls.getCellData("LoadURL", "Label", j);
            Assert.assertEquals(actualtitle, expectedtitle);

            if (actualtitle.equalsIgnoreCase(expectedtitle)) {
                APP_LOGS.debug("PAGE LABEL MATCHING....");
                String resultpass = "PASS";
                APP_LOGS.debug(resultpass);
                APP_LOGS.debug("***********************************************************");
            } else {
                APP_LOGS.debug("PAGE LABEL NOT MATCHING....");
                String resultfail = "FAIL";
                APP_LOGS.debug(resultfail);
                APP_LOGS.debug("***********************************************************");
            }
        }

请在这方面帮助我。

1 个答案:

答案 0 :(得分:2)

这是断言的正确行为,当断言错误时抛出异常。

您可以将actualTitles和expectedTitles存储在数组中,并一次执行所有断言。

为了更好的断言,我建议您尝试AssertJ,您可以直接比较2个列表,实际值和预期值,它将返回完整的差异。