if else.assertEquals selenium testNG上的if else条件

时间:2016-01-20 03:51:00

标签: java selenium testng

我正在使用java处理selenium和testNG ..我对此代码有一些问题:

Assert.assertEquals(webDriver.getCurrentUrl(), "http://google.com");

问题是如何在assertEquals中创建if else条件。像这样

if( Assert.assertEquals(webDriver.getCurrentUrl(), "http://google.com"));
{
    //do Nothing
}

else
{
   // take screenshoot
}

任何想法的人?

3 个答案:

答案 0 :(得分:5)

如果断言失败,则抛出assertionError。您需要捕获AssertionError并在catch捕获屏幕截图。

try{
   Assert.assertEquals(...,...);
}catch(AssertionError e){
   Log error;
   Takescreenshot;
}

答案 1 :(得分:0)

string url = webDriver.getCurrentUrl();
if(url == "http://google.com")
{
    // take screenshoot
}

Assert.assertEquals(url, "http://google.com")

答案 2 :(得分:0)

如果Assert.assertEquals()中的条件为false,例如Assert.assertEquals("qwerty", "asdfgh"),则测试将终止,因此无需将其放入if语句中。

如果您希望测试能够在失败时截取屏幕截图,则可以编写您的assertEquals实施

public static class Assert
{
    public static void assertEquals(Object actualResult, Object expectedResult, boolean stopOnError = true)
    {
        if (!expectedResult.equals(actualResult))
        {
            // take screenshot
            if (stopOnError)
            {
                throw new Exception();
            }
        }
    }
}

然后简单地做

Assert.assertEquals(webDriver.getCurrentUrl(), "http://google.com"));

您还可以将stopOnError更改为false,以防止测试在不相等时终止。

如果您不希望测试结束,如果网址错误,只需执行

if (!webDriver.getCurrentUrl().equals("http://google.com"))
{
    // take screenshot
}