2016-01-20 27 views
0

else條件我硒和TestNG使用Java ..我有這個代碼的一些問題:如果Assert.assertEquals硒TestNG的

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

的問題是如何創造的assertEquals如果其他條件。像這樣

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

else 
{ 
    // take screenshoot 
} 

任何想法的傢伙?

+0

使用沒有'assert'的'if'。 –

+0

和assert方法不返回任何東西,所以你不能寫入if條件。 – Mahi

回答

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

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

你不應該用'=='測試'String'是否相等(只測試參考標識)。另外,它是'String'(而不是'string')。 –

0

如果Assert.assertEquals()條件爲假,例如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,以防止測試當它們不相等時終止。

如果您不想在測試結束,如果URL是錯誤的根本就

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

如果斷言失敗,它拋出一個AssertionError。你需要捕捉AssertionError並捕獲截圖。

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