請問我究竟做錯了什麼。AssertTrue in try/catch
我檢查過,但都沒有效果。 我也檢查了以前的代碼,但我沒有得到一個錯誤,所以我的代碼工作正常,但只是輕微的錯誤的地方。
代碼運行良好,並預期assertTrue
的表現,但是當我把它放在try
/catch
,我只得到日誌中的catch塊,甚至當文字被發現。
我相信,如果assertTrue
找到文本,它應該轉到try
塊的下一行代碼,並通過測試而不是catch
塊。不要誤解我的意思,我沒有收到任何錯誤,只是它打印出錯誤的信息。
以下代碼包括控制檯中的打印輸出消息。
public boolean verifyTextPresent(String value) throws Exception {
Thread.sleep(5000);
try{
boolean txtFound = driver.getPageSource().contains(value);
log.log(value + " : text Found, .......continue");
return txtFound;
}catch(Exception e)
{
log.log(value + " :NOT Found, check element again ot Contact developer.");
return false;
}
}
public static void verifySignOutBtn() throws Exception
{
log.header("VERIFY IF SIGN_OUT EXIST AND CLICKABLE.........");
callMethod.myAccountPageNative(CONSTANTElements.SIGN_IN_LINK);
Thread.sleep(2000);
log.header("LOCATE SIGN_OUT BTN, AND CLICK ......");
callMethod.elementPresent_Click(By.cssSelector(CONSTANTElements.SIGN_OUT_BTN));
Thread.sleep(4000);
log.header("VERIFY SIGN_OUT NAVIGATES TO HOME PAGE WHEN CLICKED......");
try{
Assert.assertTrue(callMethod.verifyTextPresent("SIGN IN"), "SIGN IN");
log.log("User Successfully Signed Out.......");
log.log("Test Passed!...");
//callMethod.close();
}
catch(Throwable e)
{
log.log("User NOT Successfully Signed Out.... Contact developer.");
log.log("Test Failed!...");
//callMethod.close();
}
callMethod.close();
}
}
Msg in console:
SIGN IN : text Found, .......continue
User NOT Successfully Signed Out.... Contact developer.
Test Failed!...
混亂的部分是,爲什麼它打印出catch
塊,而不是在try
塊的下一行?
爲什麼你認爲'嘗試布爾txtFound = driver.getPageSource()。contains(value); log.log(value +「:text Found,....... continue」);}'不會打印'Found'? – jhamon
@jhamon .........感謝您的回覆......不要錯。 verifyTextPresent()的行爲如預期。我只添加了該方法,以便您可以看到如何編寫該方法。問題是爲什麼打印catch塊而不是verifySignOutBtn()中的try塊?請再次閱讀我的問題.... tanx – Joe
好吧,有2個try/catch塊,你不坐在哪一個是有缺陷的。有了這些信息,我會說'veryTextPresent'總是返回false。編輯:LordAnomander是對的,交換'assertTrue'參數。 – jhamon