當(dāng)我們正在開發(fā)測(cè)試中,我們要確保,即使測(cè)試失敗的腳本可以繼續(xù)執(zhí)行。如果最壞的情況都處理不好意外的異常會(huì)被拋出。
如果發(fā)生異常,由于無法找到元素,或者預(yù)期的結(jié)果不與實(shí)際值相符,我們應(yīng)該抓住這個(gè)異常并結(jié)束測(cè)試的邏輯方式,以防腳本本身突然終止。
實(shí)際的代碼應(yīng)該放在try塊和異常后的動(dòng)作應(yīng)該放在catch塊。請(qǐng)注意:“finally'塊就算沒有問題,不管腳本是否已經(jīng)被拋出的異常都會(huì)執(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àn)槿魏魏玫睦碛?元素,我們應(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); } }