當(dāng)我們正在開發(fā)測試中,我們要確保,即使測試失敗的腳本可以繼續(xù)執(zhí)行。如果最壞的情況都處理不好意外的異常會被拋出。
如果發(fā)生異常,由于無法找到元素,或者預(yù)期的結(jié)果不與實際值相符,我們應(yīng)該抓住這個異常并結(jié)束測試的邏輯方式,以防腳本本身突然終止。
實際的代碼應(yīng)該放在try塊和異常后的動作應(yīng)該放在catch塊。請注意:“finally'塊就算沒有問題,不管腳本是否已經(jīng)被拋出的異常都會執(zhí)行。
try { //Perform Action } catch(ExceptionType1 exp1) { //Catch block 1 } catch(ExceptionType2 exp2) { //Catch block 2 } catch(ExceptionType3 exp3) { //Catch block 3 } finally { //The finally block always executes. }
如果沒有找到(因為任何好的理由)元素,我們應(yīng)該確保走出的功能順利。所以,總是需要有try-catch塊,如果想要的跟做的是一樣的。
public static WebElement lnk_percent_calc(WebDriver driver)throws Exception { try { element = driver.findElement(By.xpath(".//*[@id='menu']/div[4]/div[3]/a")); return element; } catch (Exception e1) { // Add a message to your Log File to capture the error Logger.error("Link is not found."); // Take a screenshot which will be helpful for analysis. File screenshot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); FileUtils.copyFile(screenshot, new File("D:frameworkscreenshots.jpg")); throw(e1); } }