Xử lý ngoại lệ Selenium (Danh sách ngoại lệ phổ biến)

Mục lục:

Anonim

Ngoại lệ là gì?

Một ngoại lệ là một lỗi xảy ra tại thời điểm thực thi một 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 tạo ra một ngoại lệ cần được xử lý để tránh chương trình của bạn gặp sự cố.

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 xảy ra không thường xuyên. Khi phương thức không thể xử lý Ngoại lệ, nó sẽ được chuyển đến hàm người gọi của nó. Cuối cùng, khi một ngoại lệ bị ném ra khỏi chức năng chính, chương trình sẽ bị chấm dứt đột ngột.

Trong hướng dẫn này, bạn sẽ học:

  • Ngoại lệ là gì?
  • Các ngoại lệ trong trình điều khiển Web Selenium
  • Xử lý ngoại lệ Selenium
  • Các phương pháp hiển thị Ngoại lệ

Các ngoại lệ phổ biến trong trình điều khiển Web Selenium

Tên ngoại lệ Sự miêu tả
Yếu tố không thể chia sẻ ngoại lệ Loại ngoại lệ Selenium này xảy ra khi một phần tử hiện có trong DOM có một tính năng được đặt là ẩn.
ElementNotSelectableException Ngoại lệ Selenium này xảy ra khi một phần tử được trình bày trong DOM, nhưng bạn có thể chọn. Do đó, không thể tương tác được.
NoSuchElementException Ngoại lệ này xảy ra nếu một phần tử không thể được tìm thấy.
NoSuchFrameException 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.
NoAlertPresentException Ngoại lệ này xảy ra khi bạn chuyển sang không có cảnh báo được trình bày.
NoSuchWindowException 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.
StaleElementReferenceException Ngoại lệ Selenium này xảy ra khi phần tử web được tách ra khỏi DOM hiện tại.
SessionNotFoundException WebDriver sẽ hoạt động sau khi bạn thoát khỏi trình duyệt.
TimeoutException Ném khi không có đủ thời gian để hoàn thành một lệnh. Ví dụ, phần tử được tìm kiếm không được tìm thấy trong thời gian cụ thể.
WebDriverException Ngoại lệ này xảy ra khi WebDriver hoạt động ngay sau khi bạn đóng trình duyệt.
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.
ElementClickInterceptedException Lệnh có thể không được hoàn thành vì phần tử nhận các sự kiện đang che giấu phần tử được yêu cầu nhấp vào.
ElementNotInteractableException Ngoại lệ Selenium này đượ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 phần tử như vậy.
ErrorInResponseException Điều này xảy ra khi tương tác với tiện ích mở rộng Firefox hoặc máy chủ trình điều khiển từ xa.
ErrorHandler.UnknownServerException Ngoại lệ được sử dụng làm trình giữ chỗ trong trường hợp nếu máy chủ trả về lỗi mà không có dấu vết ngăn xếp.
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.
ImeNotAvailableException Nó diễn ra khi hỗ trợ IME không khả dụng.
InsecureCertificateException Điều hướng khiến tác nhân người dùng gặp 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.
Không hợp lệ Nó xảy ra khi một đối số không thuộc kiểu mong đợi.
Không hợp lệCookieDomainException Điều này xảy ra khi bạn cố gắng thêm cookie vào một miền khác thay vì URL hiện tại.
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ệ.
InvalidElementStateExceptio Nó xảy ra khi không thể kết thúc lệnh khi phần tử không hợp lệ.
InvalidSessionIdException Ngoại lệ này đã diễn ra khi ID phiên đã cho không được bao gồm trong danh sách các phiên hoạt động. Nó có nghĩa là phiên không tồn tại hoặc không hoạt động.
Không hợp lệSwitchToTargetException Điều này xảy ra khi mục tiêu khung hoặc cửa sổ được chuyển đổi không tồn tại.
JavascriptException Sự cố này xảy ra khi thực thi JavaScript do người dùng cung cấp.
JsonException Nó xảy ra khi bạn đủ khả năng để có được phiên khi phiên không được tạo.
NoSuchAttributeException 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ử.
MoveTargetOutOfBoundsException Nó xảy ra nếu mục tiêu được cung cấp cho phương thức ActionChains move () không hợp lệ. Ví dụ, ra khỏi tài liệu.
NoSuchContextException ContextAware thực hiện kiểm tra thiết bị di động.
NoSuchCookieException 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 đang duyệt.
NotFoundException 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.
RemoteDriverServerException Ngoại lệ Selenium này được đưa ra khi máy chủ không phản hồi vì sự cố mà các khả năng được mô tả không phù hợp.
ScreenshotException Không thể chụp màn hình.
SessionNotCreateException Nó xảy ra khi một phiên mới không thể được tạo thành công.
Can'tToSetCookieException Điều này xảy ra nếu trình điều khiển không thể đặt cookie.
Bất ngờTagNameException Xảy ra nếu một lớp hỗ trợ không nhận được phần tử web như mong đợi.
UnhandledAlertException Kỳ vọng này xảy ra khi có cảnh báo, nhưng WebDriver không thể thực hiện hoạt động Cảnh báo.
Bất ngờAlertPresentException Nó xảy ra khi có sự xuất hiện của một cảnh báo bất ngờ.
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 một phương pháp luận cho một URL cụ thể.
UnreachableBrowserException Ngoại lệ này chỉ xảy ra khi trình duyệt không thể mở được hoặc bị treo vì một số lý do.
UnsupportedCommandException Điều này xảy ra khi WebDriver từ xa không gửi các lệnh hợp lệ như mong đợi.

Xử lý ngoại lệ Selenium

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

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 Try chỉ ra điểm bắt đầu của khối và Catch được đặt ở cuối khối try, giúp giải quyết Ngoại lệ.

thử{// Mã} catch (Ngoại lệ e) {// Mã xử lý ngoại lệ}
  • 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ã duy nhất. Nhiều lần bắt giúp bạn xử lý mọi loại Ngoại lệ riêng biệt với một khối mã riêng biệt. 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ố khối bắt.
thử{// Mã} catch (ExceptionType1 e1) {// Mã xử lý ngoại lệ 1} catch (ExceptionType2 e2) {// Mã xử lý ngoại lệ 2}
  • Throw : Khi bạn muốn tạo một Exception, từ khóa Throw dùng để ném Exception để xử lý nó trong thời gian chạy. Khi bạn ném một Ngoại lệ mà không xử lý nó, thì họ cần sử dụng từ khóa Throw.
public static void anyFunction () ném Exception {thử {// viết mã của bạn ở đây} Bắt (Ngoại lệ b) {// Làm bất cứ điều gì bạn muốn thực hiện// Ném Ngoại lệ trở lại hệ thốngném (b);}}
  • 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 () ném ExceptionType1, ExceptionType2 {thử {// viết mã của bạn ở đây} catch (ExceptionType1 e1) {// Mã xử lý ngoại lệ 1} catch (ExceptionType1 e2) {// Mã xử lý ngoại lệ 2}
  • Cuối cùng : Từ khóa Final được sử dụng để tạo một khối mã dưới khối try. Đây là mã cuối cùng giúp bạn thực thi bất kể trường hợp ngoại lệ xảy ra.
thử {// Mã} catch (ExceptionType1 e1) {// Bắt khối} catch (ExceptionType2 e2) {// Bắt khối} catch (ExceptionType3 e3) {// Bắt khối} cuối cùng {// Khối cuối cùng luôn thực thi.}

Các 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ả của Ngoại lệ.

Tóm lược:

  • Một ngoại lệ là một lỗi xảy ra tại thời điểm thực thi một 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ý mọi loại Ngoại lệ riêng biệt với một khối mã riêng biệt.
  • Từ khóa Throw dùng để ném Exception để 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 Ngoại lệ.