我正在使用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
}
任何想法的人?
答案 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
}