예외 처리 Selenium 웹드라이버(종류)

예외란 무엇입니까?

An 예외 프로그램 실행시 발생하는 오류입니다. 그러나 프로그램을 실행하는 동안 프로그래밍 언어는 프로그램 충돌을 방지하기 위해 처리해야 하는 예외를 생성합니다.

예외는 이벤트가 발생할 수 있지만 이러한 유형의 이벤트가 드물게 발생함을 나타냅니다. 메서드가 예외를 처리할 수 없으면 호출자 함수에 예외가 발생합니다.

예외 유형 Selenium 웹드라이버

1. ElementNotVisible예외: 이러한 유형의 Selenium DOM의 기존 요소에 숨겨진 기능이 설정된 경우 예외가 발생합니다.

2. ElementNotSelectable예외: 이 Selenium 요소가 DOM, 하지만 선택할 수 있습니다. 따라서 상호작용이 불가능합니다.

3. NoSuchElementException: 이 예외는 요소를 찾을 수 없는 경우 발생합니다.

4. NoSuchFrameException: 전환하려는 프레임 대상이 존재하지 않는 경우 이 예외가 발생합니다.

5. NoAlertPresent예외: 이 예외는 제시된 경고 없음으로 전환할 때 발생합니다.

6. NoSuchWindowException: 이 예외는 스위치가 될 창 대상이 존재하지 않는 경우 발생합니다.

7. StaleElementReferenceException: 이 Selenium 웹 요소가 현재 DOM에서 분리되면 예외가 발생합니다.

8. SessionNotFound예외: WebDriver는 브라우저를 종료한 후에 작동합니다.

9. 시간 초과예외: 명령을 완료하는 데 시간이 충분하지 않을 때 발생합니다. 예를 들어, 검색된 요소가 지정된 시간에 발견되지 않았습니다.

10. WebDriver예외: 이 예외는 브라우저를 닫은 직후 WebDriver가 작동할 때 발생합니다.

11. 연결닫기예외: 이러한 유형의 예외는 드라이버 연결이 끊길 때 발생합니다.

12. ElementClickIntercepted예외: 이벤트를 수신하는 요소가 클릭이 요청된 요소를 숨기고 있으므로 명령이 완료되지 않을 수 있습니다.

13. ElementNotInteractable예외: 이 Selenium DOM에 요소가 표시되면 예외가 발생합니다. 그러나 그러한 요소와 상호작용하는 것은 불가능합니다.

14. ErrorInResponse예외: 이는 다음과 상호작용하는 동안 발생합니다. Firefox 확장 또는 원격 드라이버 서버.

15. ErrorHandler.UnknownServerException: 서버가 스택 추적 없이 오류를 반환하는 경우 예외는 자리 표시자로 사용됩니다.

16. ImeActivationFailed예외: 이러한 예상은 IME 엔진 활성화가 실패했을 때 발생합니다.

17. ImeNotAvailable예외: IME 지원을 사용할 수 없을 때 발생합니다.

18. 안전하지 않은인증서예외: 탐색으로 인해 사용자 에이전트가 인증서 경고를 발생시켰습니다. 이는 유효하지 않거나 만료된 TLS 인증서로 인해 발생할 수 있습니다.

19. 잘못된ArgumentException: 인수가 예상 유형에 속하지 않을 때 발생합니다.

20. InvalidCookieDomain예외: 이는 현재 URL이 아닌 다른 도메인에 쿠키를 추가하려고 할 때 발생합니다.

21. 잘못된좌표 예외: 이 유형의 예외는 유효하지 않은 상호 작용 작업과 일치합니다.

22. InvalidElementState예외: 요소가 유효하지 않아 명령을 완료할 수 없는 경우에 발생합니다.

23. InvalidSessionId예외: 이 예외는 지정된 세션 ID가 활성 세션 목록에 포함되어 있지 않을 때 발생했습니다. 이는 세션이 존재하지 않거나 비활성 상태임을 의미합니다.

24. 잘못된SwitchToTarget예외 : 이는 전환할 프레임이나 창 대상이 존재하지 않을 때 발생합니다.

25. Javascript예외 : 이 문제는 실행 중에 발생합니다. Java사용자가 제공한 스크립트입니다.

26. JSON예외: 세션이 생성되지 않은 상태에서 세션을 얻을 여유가 있을 때 발생합니다.

27. NoSuchAttributeException: 이러한 종류의 예외는 요소의 속성을 찾을 수 없을 때 발생합니다.

28. 이동TargetOutOfBounds예외: ActionChains move() 방법론에 제공된 대상이 유효하지 않은 경우 발생합니다. 예를 들어, 문서 밖으로.

29. NoSuchContextException: ContextAware는 모바일 장치 테스트를 수행합니다.

30. NoSuchCookieException: 이 예외는 현재 검색 중인 문서의 모든 관련 쿠키에 대해 지정된 경로 이름과 일치하는 쿠키가 없을 때 발생합니다.

31. NotFound예외: 이 예외는 WebDriverException의 하위 클래스입니다. 이는 DOM의 요소가 존재하지 않을 때 발생합니다.

32. RemoteDriverServer예외: 이 Selenium 설명된 기능이 적절하지 않은 문제로 인해 서버가 응답하지 않는 경우 예외가 발생합니다.

33. 스크린샷예외: 화면 캡쳐가 불가능합니다.

34. SessionNotCreated예외: 새 세션을 성공적으로 생성하지 못한 경우 발생합니다.

35. UnableToSetCookie예외: 이는 드라이버가 쿠키를 설정할 수 없는 경우 발생합니다.

36. 예상치 못한TagName예외: 지원 클래스가 예상대로 웹 요소를 얻지 못한 경우 발생합니다.

37. 처리되지 않은 경고 예외: 이러한 예상은 경고가 발생하지만 WebDriver가 경고 작업을 수행할 수 없는 경우 발생합니다.

38. 예상치 못한AlertPresent예외: 예상치 못한 경고가 나타날 때 발생합니다.

39. 알 수 없는 방법 예외: 이 예외는 요청된 명령이 알려진 URL과 일치하지만 특정 URL에 대한 방법과 일치하지 않을 때 발생합니다.

40. 도달할 수 없는브라우저예외: 이 예외는 어떤 이유로 인해 브라우저가 열리지 않거나 충돌하는 경우에만 발생합니다.

41. 지원되지 않는 명령예외: 이는 원격 WebDriver가 예상대로 유효한 명령을 보내지 않을 때 발생합니다.

예외를 처리하는 방법 Selenium

다음은 예외를 처리할 수 있는 몇 가지 중요한 표준입니다. Selenium 웹드라이버:

1단계) 시도-캐치

이 메서드는 try 및 catch 키워드의 조합을 사용하는 예외를 포착할 수 있습니다. Try 명령은 블록의 시작을 나타냅니다. 잡아라 예외를 해결하는 데 도움이 되는 try 블록의 끝에 배치됩니다.

try
{
// Code
} catch (Exception e) {
// Code for Handling exception
}

2단계) 다중 캐치 블록

다양한 유형의 예외가 있으며 단일 코드 블록에서 둘 이상의 예외가 발생할 수 있습니다. 여러 catch를 사용하면 별도의 코드 블록을 사용하여 모든 유형의 예외를 개별적으로 처리할 수 있습니다. XNUMX개 이상의 캐치블록에 사용할 수 있으며, 캐치블록 개수에는 제한이 없습니다.

try
{
//Code
} catch (ExceptionType1 e1) {
//Code for Handling Exception 1
} catch (ExceptionType2 e2) {
//Code for Handling Exception 2
}

3단계) ​​던지기

예외를 생성하고 싶을 때, Throw 키워드는 런타임에 예외를 처리하기 위해 예외를 throw하는 데 사용됩니다. 처리하지 않고 예외를 throw하는 경우, Throw 키워드를 사용해야 합니다.

public static void anyFunction() throws Exception{

try {
// write your code here
} Catch (Exception b) {
// Do whatever you want to perform 
// Throw the Exception back to the system
throw(b);
}
}

4단계) 여러 예외

throws 절에서 다양한 예외를 언급할 수 있습니다.

public static void anyFunction() throws ExceptionType1, ExceptionType2{

try {
// write your code here
} catch (ExceptionType1 e1) {
// Code to handle exception 1
} catch (ExceptionType1 e2) {
// Code to handle exception 2
}

5단계) 마지막으로

Final 키워드는 try 블록 아래에 코드 블록을 만드는 데 사용됩니다. 예외 발생과 관계없이 실행되도록 도와주는 최종 코드입니다.

try {
//Code
} catch (ExceptionType1 e1) {
//Catch block
} catch (ExceptionType2 e2) {
//Catch block
} catch (ExceptionType3 e3) {
//Catch block
} finally {
//The finally block always executes.
}

예외 표시 방법

다음 방법을 사용하여 예외 정보를 표시할 수도 있습니다.

  • 인쇄 스택 추적(): 이 함수는 스택 추적, 예외 이름 및 기타 유용한 설명을 인쇄합니다.
  • toString (): 이 함수는 예외 이름과 설명을 설명하는 텍스트 메시지를 반환합니다.
  • getMessage (): Exception에 대한 설명을 표시하는데 도움을 줍니다.

제품 개요

  • 예외는 프로그램 실행 시 발생하는 오류입니다.
  • Try-catch: 이 방법은 try 및 catch 키워드의 조합을 사용하여 예외를 포착할 수 있습니다.
  • 여러 catch를 사용하면 별도의 코드 블록을 사용하여 모든 유형의 예외를 개별적으로 처리할 수 있습니다.
  • Throw 키워드는 런타임에 이를 처리하기 위해 Exception을 발생시키는 데 사용됩니다.
  • printStackTrace(): 이 함수는 스택 추적, 예외 이름 및 기타 유용한 설명을 인쇄합니다.
  • toString(): 이 함수는 예외 이름과 설명을 설명하는 텍스트 메시지를 반환합니다.
  • getMessage(): 예외에 대한 설명을 표시하는 데 도움이 됩니다.