Selenium-exception-handling

提供:Dev Guides
移動先:案内検索

セレン-例外処理

テストを開発するときは、テストが失敗してもスクリプトが実行を継続できることを確認する必要があります。 最悪のシナリオが適切に処理されない場合、予期しない例外がスローされます。

要素が見つからないために例外が発生した場合、または期待される結果が実際の結果と一致しない場合、スクリプトを突然終了するのではなく、その例外をキャッチして論理的な方法でテストを終了する必要があります。

構文

実際のコードはtryブロックに配置し、例外の後のアクションはcatchブロックに配置する必要があります。 スクリプトが例外をスローしたかどうかに関係なく、「finally」ブロックが実行されることに注意してください。

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.
}

(何らかの理由で)要素が見つからない場合は、関数からスムーズに脱出する必要があります。 そのため、関数からスムーズに終了する場合は、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:\\framework\\screenshots.jpg"));
      throw(e1);
   }
}