Xử lý ngoại lệ trong Selenium Trình điều khiển web (Các loại)

Ngoại lệ là gì?

An ngoại lệ là lỗi xảy ra khi thực hiện chương trình. Tuy nhiên, trong khi chạy một chương trình, các ngôn ngữ lập trình sẽ tạo ra một ngoại lệ cần được xử lý để tránh chương trình của bạn bị lỗi.

Ngoại lệ chỉ ra rằng, mặc dù sự kiện có thể xảy ra nhưng loại sự kiện này hiếm khi xảy ra. Khi phương thức không thể xử lý Ngoại lệ, nó sẽ được chuyển sang hàm gọi của nó.

Các loại ngoại lệ trong Selenium webdriver

1. Ngoại lệ ElementNotVisible: Đây là loại Selenium ngoại lệ xảy ra khi một phần tử hiện có trong DOM có tính năng được đặt ở trạng thái ẩn.

2. Ngoại lệ ElementNotSelectable: T Selenium ngoại lệ xảy ra khi một phần tử được trình bày trong DOM, nhưng bạn có thể chọn. Vì thế không thể tương tác được.

3. Ngoại lệ NoSuchElementException: Ngoại lệ này xảy ra nếu không thể tìm thấy một phần tử.

4. Ngoại lệ NoSuchFrame: Ngoại lệ này xảy ra nếu mục tiêu khung được chuyển sang không tồn tại.

5. Ngoại lệ NoAlertPresent: Ngoại lệ này xảy ra khi bạn chuyển sang không có cảnh báo nào được trình bày.

6. Ngoại lệ NoSuchWindow: Ngoại lệ này xảy ra nếu mục tiêu cửa sổ được chuyển đổi không tồn tại.

7. StaleElementReferenceException: T Selenium ngoại lệ xảy ra khi phần tử web bị tách khỏi DOM hiện tại.

8. SessionNotFoundException: WebDriver đang hoạt động sau khi bạn thoát khỏi trình duyệt.

9. Ngoại lệ hết thời gian chờ: Ném đi khi không có đủ thời gian để hoàn thành một lệnh. Ví dụ: không tìm thấy phần tử được tìm kiếm trong thời gian đã chỉ định.

10. WebDriverException: Ngoại lệ này diễn ra khi WebDriver hoạt động ngay sau khi bạn đóng trình duyệt.

11. ConnectionClosedException: Loại ngoại lệ này diễn ra khi có sự ngắt kết nối trong trình điều khiển.

12. ElementClickInterceptedException: Lệnh có thể không được hoàn thành vì phần tử nhận sự kiện đang ẩn phần tử được yêu cầu nhấp vào.

13. Ngoại lệ ElementNotInteractable: T Selenium ngoại lệ được ném ra khi bất kỳ phần tử nào được hiển thị trong DOM. Tuy nhiên, không thể tương tác với một yếu tố như vậy.

14. ErrorInResponseException: Điều này xảy ra khi tương tác với Firefox tiện ích mở rộng hoặc máy chủ trình điều khiển từ xa.

15. ErrorHandler.UnknownServerException: Ngoại lệ được sử dụng làm phần giữ chỗ trong trường hợp máy chủ trả về lỗi mà không có dấu vết ngăn xếp.

16. ImeActivationFailedException: Kỳ vọng này sẽ xảy ra khi kích hoạt công cụ IME không thành công.

17. ImeNotAvailableException: Nó diễn ra khi không có hỗ trợ IME.

18. Ngoại lệ không an toànCertificate: Điều hướng khiến tác nhân người dùng gặp phải cảnh báo chứng chỉ. Điều này có thể do chứng chỉ TLS không hợp lệ hoặc hết hạn.

19. Ngoại lệ không hợp lệ: Nó xảy ra khi một đối số không thuộc loại dự kiến.

20. Ngoại lệ CookieDomain không hợp lệ: Điều này xảy ra khi bạn cố gắng thêm cookie trong một tên miền khác thay vì URL hiện tại.

21. Ngoại lệ tọa độ không hợp lệ: Loại Ngoại lệ này khớp với một hoạt động tương tác không hợp lệ.

22. Ngoại lệ không hợp lệElementStateException: Nó xảy ra khi lệnh không thể hoàn thành khi phần tử không hợp lệ.

23. InvalidSessionIdException: Ngoại lệ này xảy ra khi ID phiên đã cho không được đưa vào danh sách các phiên hoạt động. Điều đó có nghĩa là phiên không tồn tại hoặc không hoạt động.

24. SwitchTo không hợp lệTargetNgoại lệ: Điều này xảy ra khi khung hoặc mục tiêu cửa sổ được chuyển đổi không tồn tại.

25. JavascriptNgoại lệ: Sự cố này xảy ra trong khi thực thi JavaTập lệnh do người dùng cung cấp.

26. Ngoại lệ Json: Nó xảy ra khi bạn đủ khả năng để có được phiên khi phiên chưa được tạo.

27. Ngoại lệ NoSuchAttribution: Loại ngoại lệ này xảy ra khi không thể tìm thấy thuộc tính của một phần tử.

KHAI THÁC. Di chuyểnTargetNgoại lệ OutOfBounds: Nó diễn ra nếu mục tiêu được cung cấp cho phương pháp ActionChains move() không hợp lệ. Ví dụ: ra khỏi tài liệu.

29. NoSuchContextException: ContextAware thực hiện kiểm tra thiết bị di động.

30. Ngoại lệ NoSuchCookie: Ngoại lệ này xảy ra khi không tìm thấy cookie nào khớp với tên đường dẫn đã cho cho tất cả các cookie được liên kết của tài liệu hiện đang duyệt.

31. Ngoại lệ không tìm thấy: Ngoại lệ này là một lớp con của WebDriverException. Điều này sẽ xảy ra khi một phần tử trên DOM không tồn tại.

32. RemoteDriverServerException: T Selenium ngoại lệ được đưa ra khi máy chủ không phản hồi do sự cố mà các khả năng được mô tả không phù hợp.

33. Ngoại lệ ảnh chụp màn hình: Không thể chụp màn hình.

34. SessionNotCreatedException: Nó xảy ra khi một phiên mới không thể được tạo thành công.

35. UnableToSetCookieException: Điều này xảy ra nếu trình điều khiển không thể đặt cookie.

36. Ngoại lệTagNameException: Xảy ra nếu lớp hỗ trợ không nhận được phần tử web như mong đợi.

37. Ngoại lệ chưa được xử lý: Kỳ vọng này xảy ra khi có cảnh báo nhưng WebDriver không thể thực hiện thao tác Cảnh báo.

38. Ngoại lệ UnexpectedAlertPresentException: Nó xảy ra khi có sự xuất hiện của một cảnh báo bất ngờ.

39. UnknownMethodException: Ngoại lệ này xảy ra khi lệnh được yêu cầu khớp với một URL đã biết nhưng không khớp với phương pháp cho một URL cụ thể.

40. Ngoại lệ không thể truy cập được: Ngoại lệ này chỉ xảy ra khi trình duyệt không thể mở được hoặc bị lỗi vì lý do nào đó.

41. Ngoại lệ lệnh không được hỗ trợ: Điều này xảy ra khi WebDriver từ xa không gửi lệnh hợp lệ như mong đợi.

Cách xử lý ngoại lệ trong Selenium

Dưới đây là một số tiêu chuẩn quan trọng mà bạn có thể sử dụng để xử lý Ngoại lệ trong Selenium Trình điều khiển Web:

Bước 1) Thử bắt

Phương pháp này có thể bắt Ngoại lệ, sử dụng kết hợp các từ khóa thử và bắt. Lệnh thử cho biết điểm bắt đầu của khối và Catch được đặt ở cuối khối thử, giúp giải quyết Ngoại lệ.

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

Bước 2) Nhiều khối bắt

Có nhiều loại Ngoại lệ khác nhau và bạn có thể mong đợi nhiều hơn một ngoại lệ từ một khối mã. Nhiều lần bắt giúp bạn xử lý từng loại Ngoại lệ riêng biệt bằng một khối mã riêng. Nó có thể được sử dụng cho nhiều hơn hai khối bắt và không có giới hạn về số lượng khối bắt.

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

Bước 3) Ném

Khi bạn muốn tạo một Ngoại lệ, từ khóa Throw được sử dụng để ném Ngoại lệ để xử lý nó trong thời gian chạy. Khi bạn ném Ngoại lệ mà không xử lý nó, thì họ cần sử dụng từ khóa 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);
}
}

Bước 4) Nhiều ngoại lệ

Bạn có thể đề cập đến nhiều Ngoại lệ khác nhau trong mệnh đề ném.

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
}

Bước 5) Cuối cùng

Từ khóa Final được sử dụng để tạo một khối mã trong khối thử. Đây là mã cuối cùng giúp bạn thực thi bất kể có ngoại lệ xảy ra hay không

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

Phương pháp hiển thị ngoại lệ

Bạn cũng có thể sử dụng các phương pháp sau để hiển thị Thông tin ngoại lệ:

  • printStackTrace(): Hàm này in dấu vết ngăn xếp, tên của Ngoại lệ và mô tả hữu ích khác.
  • toString (): Hàm này trả về một tin nhắn văn bản mô tả tên và mô tả ngoại lệ.
  • getMessage (): Giúp hiển thị mô tả về Ngoại lệ.

Tổng kết

  • Ngoại lệ là lỗi xảy ra tại thời điểm thực hiện chương trình.
  • Thử bắt: Phương pháp này có thể bắt Ngoại lệ, sử dụng kết hợp các từ khóa thử và bắt.
  • Nhiều lần bắt giúp bạn xử lý từng loại Ngoại lệ riêng biệt bằng một khối mã riêng.
  • Từ khóa Throw dùng để ném Ngoại lệ để xử lý nó trong thời gian chạy.
  • printStackTrace(): Hàm này in dấu vết ngăn xếp, tên của Ngoại lệ và mô tả hữu ích khác
  • toString(): Hàm này trả về một tin nhắn văn bản mô tả tên và mô tả ngoại lệ.
  • getMessage(): Giúp hiển thị mô tả của Exception.