Selenium thông thạo chờ trăn

Bắt đầu một ngoại lệ - ngoại lệ trong mã tự động hóa rất phổ biến. 'Ngoại lệ' biểu thị trường hợp đặc biệt hoặc không phổ biến

Nội dung chính Hiển thị

  • Ngoại lệ là gì?
  • Các loại ngoại lệ trong Java và Selenium
  • Xử lý ngoại lệ
  • Các biến ngoại lệ phổ biến trong Selenium WebDriver
  • Tránh và xử lý các biến ngoại lệ phổ biến [nêu trên]
  • #1] tổ chức. openqa. selen. NoSuchElementException
  • #2] tổ chức. openqa. selen. NoSuchWindowException
  • #3] tổ chức. openqa. selen. NoSuchFrameException
  • #4] tổ chức. openqa. selen. NoAlertPresentException
  • #5] tổ chức. openqa. selen. Ngoại lệ Selector không hợp lệ
  • #6] tổ chức. openqa. selen. ElementNotVisibleException
  • #7] tổ chức. openqa. selen. ElementNotSelectableException
  • #8] tổ chức. openqa. selen. Hết thời gian ngoại lệ
  • Lời kết

Việc thực thi mã tự động có thể không được như mong đợi do nhiều yếu tố khách hàng liên quan đến quá trình thực thi như vấn đề ổn định mạng, sự cố Internet, ổn định của máy chủ, v. v. Từ đó chúng ta có thể sẽ nhận được ngoại lệ trả về do không đủ thời gian chờ hoặc cú pháp, tham số không chính xác, v. v

Vì vậy việc tìm hiểu về các ngoại lệ và cách xử lý chúng cũng rất cần thiết trong quá trình tạo các mã tự động hóa

Ngoại lệ là gì?

Ngoại lệ là các sự kiện do chương trình kết thúc đột ngột mà không đưa ra kết quả mong đợi. Java cung cấp một khung nơi người dùng có thể xử lý các ngoại lệ

Quá trình xử lý các ngoại lệ được gọi là Xử lý ngoại lệ

Các ngoại lệ cần được xử lý vì chúng phá vỡ quy trình thực thi bình thường của một chương trình. Một trong những mục đích quan trọng của lý do ngoại lệ công việc là ngăn chặn sự phá vỡ này để tiếp tục thực hiện chương trình dự án. Hoặc thực hiện một số hành động bất kỳ khi xảy ra một ngoại lệ nhất định

Khi có 1 ngoại lệ xảy ra thì 1 đối tượng ngoại lệ 'Ném một ngoại lệ' được khởi động cùng với các khối Try/Catch ví dụ như sau

try {
// Protected code 
} catch [ExceptionName e] {
// Catch block 
}
  • Khi có ngoại lệ
    try {
        br = new BufferedReader[new FileReader["Data"]];
        } catch[IOException ie]
        {
          ie.printStackTrace[];
        } catch[FileNotFoundException file]{
          file.printStackTrace[];
        }
    
    4 bất kỳ điều gì xảy ra thì tuyên bố
    try {
        br = new BufferedReader[new FileReader["Data"]];
        } catch[IOException ie]
        {
          ie.printStackTrace[];
        } catch[FileNotFoundException file]{
          file.printStackTrace[];
        }
    
    5 sẽ được thực thi
  • Khi không còn ngoại lệ
    try {
        br = new BufferedReader[new FileReader["Data"]];
        } catch[IOException ie]
        {
          ie.printStackTrace[];
        } catch[FileNotFoundException file]{
          file.printStackTrace[];
        }
    
    4 thì câu lệnh
    try {
        br = new BufferedReader[new FileReader["Data"]];
        } catch[IOException ie]
        {
          ie.printStackTrace[];
        } catch[FileNotFoundException file]{
          file.printStackTrace[];
        }
    
    7 được thực thi và bỏ qua câu lệnh
    try {
        br = new BufferedReader[new FileReader["Data"]];
        } catch[IOException ie]
        {
          ie.printStackTrace[];
        } catch[FileNotFoundException file]{
          file.printStackTrace[];
        }
    
    5
  • Nên sử dụng try/catch để xử lý những việc làm sai và nằm ngoài tầm kiểm soát

Nên sử dụng các phương pháp

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
9 để tránh ngoại lệ trước, nếu không tránh được ngoại lệ thì mới xử lý

Ưu điểm và nhược điểm của phương pháp Tránh-Xử lý này

ưu điểm

  • Làm giảm cơ hội nhận được ngoại lệ
  • Nếu một ngoại lệ vẫn bị bắt, thì nó sẽ là một trường hợp thực sự đặc biệt đáng để kiểm tra
  • Default time off. Mã tự động hóa Mục đích tìm ra lỗi và bạn không muốn thấy quá nhiều ngoại lệ không mong muốn và tìm lý do đằng sau từng lỗi đó
  • Trong khối Catch, bạn đối chiếu với các trường hợp giá trị hơn
  • Giảm lỗi sai
  • Clearer report

nhược điểm

  • Tăng số lượng mã dòng vì bạn thêm mã bổ sung để tránh ngoại lệ
  • Cần hiểu biết về các API, lệnh và ngoại lệ của Trình điều khiển Web

Để tìm hiểu về phương pháp

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
9 này thì trước hết cần hiểu cơ bản về Xử lý ngoại lệ và các khối Try/Catch

Các loại ngoại lệ trong Java và Selenium

Có 3 loại ngoại lệ

  1. Đã kiểm tra ngoại lệ
  2. Ngoại lệ không được kiểm tra
  3. Lỗi

Phân cấp lớp của ngoại lệ và lỗi

#1] Kiểm tra ngoại lệ. was process in the biên dịch thời gian và sẽ gây ra lỗi biên dịch nếu nó không được bắt và xử lý trong thời biên dịch [bắt buộc phải xử lý để có thể tiếp tục biên dịch chương trình]

Ví dụ. FileNotFoundException, IOException

#2] Ngoại lệ không được kiểm tra. trong trường hợp này, biên dịch biên dịch không bắt buộc phải xử lý. Bỏ qua trình biên dịch trong thời gian biên dịch

Ví dụ. ArrayIndexoutOfBoundException

#3] Lỗi. Khi một kịch bản nghiêm trọng xảy ra và chương trình không thể khôi phục lại thì JVM sẽ tạo ra một lỗi. Khối try-catch không thể xử lý lỗi này. Ngay cả khi người dùng cố gắng xử lý lỗi bằng cách sử dụng khối try-catch thì nó cũng không thể khôi phục sau lỗi

Ví dụ. Lỗi khẳng định, OutOfMemoryError

Xử lý ngoại lệ

Thử và bắt khối

Các khối try-catch thường được sử dụng để xử lý các ngoại lệ. Các loại dự kiến ​​ngoại lệ sẽ được khai báo trong block catch [//IOException tức là]. Khi một ngoại lệ xuất hiện trong khối thử, ngay lập tức trình điều khiển sẽ điều hướng đến khối

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
5 [//tức là. printStackTrace[]]

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
         ie.printStackTrace[];
    }

Có thể kết hợp bắt nhiều ngoại lệ trong 1 khối thử

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }

ném ngoại lệ

Từ khóa

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
12 trong java được sử dụng để ném/xóa một ngoại lệ thay vì xử lý nó. Tất cả các ngoại lệ đều là ngoại lệ được kiểm tra có thể bị ném bằng các phương thức. Ví dụ

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
1

cuối cùng chặn

Khối thực thi bất kể việc thực thi khối try-catch như thế nào và được thực thi ngay sau khi khối try/catch hoàn tất

Đóng tệp, ngắt kết nối cơ sở dữ liệu, v. v. could be done in this block [cuối cùng]. Ví dụ

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
3

Trong ví dụ trên, luồng BufferReader đã bị đóng trong khối

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
13. Lệnh
try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
14 sẽ luôn được thực thi bất kể việc thực hiện khối thi thử - bắt như thế nào

Chú thích

  • Khối
    try {
        br = new BufferedReader[new FileReader["Data"]];
        } catch[IOException ie]
        {
          ie.printStackTrace[];
        } catch[FileNotFoundException file]{
          file.printStackTrace[];
        }
    
    13 là khối độc lập, có thể tồn tại mà không cần phải có bất kỳ khối bắt nào
  • Có thể có nhiều khối bắt nhưng chỉ có 1 khối duy nhất
    try {
        br = new BufferedReader[new FileReader["Data"]];
        } catch[IOException ie]
        {
          ie.printStackTrace[];
        } catch[FileNotFoundException file]{
          file.printStackTrace[];
        }
    
    13

Ném được

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
17 là lớp cha của lỗi và ngoại lệ. Nếu bạn không chắc chắn về các loại lỗi và ngoại lệ, thì nên sử dụng lớp
try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
17 để đảm bảo an toàn, nó có thể bắt cả lỗi và ngoại lệ. Ví dụ

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
0

Các biến ngoại lệ phổ biến trong Selenium WebDriver

Selenium có một tệp ngoại lệ riêng. Trong khi phát triển các tập lệnh Selenium, bạn cần phải xử lý hoặc loại bỏ các ngoại lệ này

Dưới đây là một số ví dụ về các trường hợp ngoại lệ này

Tất cả các lớp thời gian chạy ngoại lệ trong Selenium WebDriver đều nằm dưới lớp cha WebDriverException

Có rất nhiều lớp ngoại lệ trong WebDriverException, phổ biến hay thấy 1 số lớp dưới đây

  • NoSuchElementException. Ngoại lệ này là truy cập vào một phần tử không có sẵn trên trang
  • NoSuchElementException
  • NoSuchWindowException
  • NoSuchFrameException
  • NoAlertPresentException. Người dùng cố gắng xử lý hộp cảnh báo nhưng cảnh báo không xuất hiện
  • Ngoại lệ Selector không hợp lệ
  • ElementNotVisibleException. Selenium cố gắng tìm một phần tử nhưng phần tử đó không hiển thị trong trang
  • ElementNotSelectableException
  • Hết thời gian ngoại lệ
  • NoSuchSessionException
  • StaleElementReferenceException
  • WebDriverException. Lỗi ngoại lệ xảy ra khi mã không thể khởi động WebDriver

Tránh và xử lý các biến ngoại lệ phổ biến [nêu trên]

#1] tổ chức. openqa. selen. NoSuchElementException

Lớp ngoại lệ thường thấy this is an layer con of layer

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
19. Trường hợp ngoại lệ xảy ra khi WebDriver không thể tìm thấy và định vị các phần tử. Điều này thường xảy ra khi người kiểm tra viết bộ định vị phần tử không chính xác theo phương thức
try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
30

Vui lòng xem xét rằng trong ví dụ dưới đây, id chính xác cho trường văn bản là "firstfield" nhưng người kiểm tra đã viết sai là "fistfield". Trong trường hợp này, WebDriver không thể định vị phần tử và

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
31 sẽ bị bắn ra

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
4

Phòng Tránh Và Xử Lý. Please try to given a queue. Ví dụ

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
5

Lệnh chờ đợi 10 giây cho sự hiện diện của phần tử web với id 'gửi'. Sau đó, lệnh

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
7 thực hiện nhấp chuột vào nó. Nếu phần tử có sẵn nhưng nhấp chuột vẫn không thành công, một ngoại lệ sẽ bị bắt

Thời gian sử dụng là một phương pháp biến phổ biến trong quá trình kiểm tra tự động để tạo khoảng dừng giữa các bước. Bằng cách thêm khối Try/Catch, có thể chắc chắn rằng chương trình sẽ tiếp tục ngay cả khi công việc chờ đợi không thể giúp ích được gì

#2] tổ chức. openqa. selen. NoSuchWindowException

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
33 nằm trong lớp
try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
19. Ngoại lệ này được chụp khi WebDriver cố gắng chuyển sang một cửa sổ không hợp lệ

Đoạn mã dưới đây bắn về

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
35 nếu cửa sổ không tồn tại hoặc không có sẵn để chuyển đổi

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
0

Phòng Tránh Và Xử Lý. Sử dụng window handle để lấy tập hợp các cửa sổ đang hoạt động và sau đó thực hiện các hành động tương tự

Trong ví dụ dưới đây, công tắc trình điều khiển được thực thi đối với mỗi tay cầm cửa sổ. Do đó, nguy cơ truyền một tham số cửa sổ sai giảm xuống

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
1

#3] tổ chức. openqa. selen. NoSuchFrameException

Khi WebDriver cố gắng chuyển sang một khung không hợp lệ,

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
36 trong lớp
try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
19 bị bắn ra

Đoạn mã ví dụ dưới đây sẽ bắn về

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
38 nếu các khung
try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
39 không tồn tại hoặc không có sẵn

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
00

Xử lý ngoại lệ

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
         ie.printStackTrace[];
    }
0

Trong trường hợp này, ngoại lệ được chụp ra ngay cả khi các khung không được tải xuống

Phòng Tránh Và Xử Lý. Please try to given a queue. Ví dụ

Trong ví dụ dưới đây, WebDriver đợi 10 giây để tải khung. Nếu các khung có sẵn và vẫn có một ngoại lệ, thì nó sẽ bị bắt

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
         ie.printStackTrace[];
    }
1

#4] tổ chức. openqa. selen. NoAlertPresentException

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
01 nằm trong
try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
19 được chụp khi WebDriver cố gắng chuyển sang cảnh báo không khả thi

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
         ie.printStackTrace[];
    }
2

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
03 sẽ bị bắn ra nếu gọi theo phương thức
try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
04 hoạt động trên Lớp Cảnh báo khi một cảnh báo không xuất hiện trên màn hình

Xử lý ngoại lệ

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
         ie.printStackTrace[];
    }
3

Trong trường hợp này, ngoại lệ bị ném ra ngay cả khi cảnh báo không được tải xuống đầy đủ

Phòng Tránh Và Xử Lý. Trong mọi trường hợp dự kiến ​​có cảnh báo, luôn sử dụng chức năng chờ rõ ràng hoặc chờ thông thạo trong một khoảng thời gian cụ thể. Nếu cảnh báo có sẵn và vẫn có ngoại lệ, thì nó sẽ bị bắt

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
         ie.printStackTrace[];
    }
4

#5] tổ chức. openqa. selen. Ngoại lệ Selector không hợp lệ

Đây là lớp con của lớp

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
05, xảy ra khi một bộ lựa chọn không chính xác hoặc không hợp lệ về mặt cú pháp. Ngoại lệ này thường xảy ra khi sử dụng bộ định vị XPATH. Ví dụ

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
         ie.printStackTrace[];
    }
5

Điều này sẽ tạo ra một lỗi không hợp lệ do cú pháp XPATH không chính xác

Phòng tránh và xử lý. Để tránh điều này, chúng ta nên kiểm tra bộ định vị được sử dụng vì bộ định vị không thể chính xác hoặc sai cú pháp. Sử dụng Firebug để tìm xpath có thể giảm trường hợp ngoại lệ này

Cách xử lý ngoại lệ này sử dụng Try/Catch

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
         ie.printStackTrace[];
    }
6

#6] tổ chức. openqa. selen. ElementNotVisibleException

Lớp

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
06 là một lớp con của lớp
try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
07. Ngoại lệ này được chụp khi WebDriver cố gắng thực hiện một hành động trên một phần web ẩn phần tử, không thể tương tác với phần tử này. Thông báo là phần tử web đang ở trạng thái ẩn

Ví dụ. trong đoạn mã bên dưới, nếu nút có id = ‘submit’ bị ‘ẩn’ trong HTML, thì

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
08 sẽ bị bắn ra

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
         ie.printStackTrace[];
    }
7

Trong trường hợp này, ngoại lệ được chụp ra ngay cả khi trang chưa được tải xuống đầy đủ

Phòng Tránh Và Xử Lý. Chúng ta có thể sử dụng lệnh chờ cho phần tử nhận được hoàn toàn. Đoạn mã bên dưới đợi 10 giây để xuất hiện phần tử. Nếu phần tử hiển thị và vẫn ném ngoại lệ, nó sẽ bị bắt

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
         ie.printStackTrace[];
    }
8

#7] tổ chức. openqa. selen. ElementNotSelectableException

Ngoại lệ này nằm trong lớp

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
09.
try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
40 chỉ ra rằng phần tử web hiện diện trong trang web nhưng không được chọn

Ví dụ. đoạn mã bên dưới sẽ trả về một ngoại lệ

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
40 nếu id “swift” bị vô hiệu hóa [vô hiệu hóa]

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
         ie.printStackTrace[];
    }
9

Xử lý ngoại lệ

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
0

Trong trường hợp này, ngoại lệ được ném ra ngay cả khi phần tử được bật sau một thời gian

Phòng Tránh Và Xử Lý. Add queue đợi để đợi cho đến khi phần tử có thể nhấp được. Nếu vẫn có ngoại lệ, nó sẽ bị bắt

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
1

#8] tổ chức. openqa. selen. Hết thời gian ngoại lệ

Ngoại lệ này xảy ra khi lệnh hoàn thành mất nhiều hơn thời gian chờ cho phép. Các lệnh Wait Wait chủ yếu được sử dụng trong WebDriver để tránh ngoại lệ

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
06. Đôi khi kiểm tra trang có thể chưa được tải xuống hoàn toàn trước lệnh tiếp theo trong chương trình. Nếu WebDriver cố gắng tìm một phần tử trong trang web trước khi trang tải xuống đầy đủ, thì ngoại lệ
try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
06 sẽ bị bắn ra. Để tránh ngoại lệ này, lệnh chờ được thêm vào

Tuy nhiên, nếu các thành phần không tải ngay cả sau khi chờ đợi, thì ngoại lệ

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
44 sẽ bị bắn ra

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
2

Trong đoạn mã trên, thời gian chờ định mức là 10 giây được thêm vào. If trang www. trợ giúp kiểm thử phần mềm. com không được tải xuống trong vòng 10 giây, thì ngoại lệ

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
45 sẽ bị bắn ra

Phòng tránh và xử lý. Để tránh điều này, chúng ta có thể kiểm tra thủ thuật thời gian tải trang trung bình và điều chỉnh thời gian chờ. Hoặc, có thể thêm chức năng chờ rõ ràng [thời gian chờ rõ ràng] bằng trình thực thi JavaScript cho đến khi trang được tải xuống

Trong ví dụ dưới đây, trình thực thi JavaScript được sử dụng. Sau khi điều hướng trang, gọi JavaScript trả về

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
46 trong 20 giây cho đến khi “hoàn tất” được trả về

try {
    br = new BufferedReader[new FileReader["Data"]];
    } catch[IOException ie]
    {
      ie.printStackTrace[];
    } catch[FileNotFoundException file]{
      file.printStackTrace[];
    }
3

Lời kết

Xử lý ngoại lệ là phần thiết yếu của mọi chương trình java cũng như tập lệnh Selenium. Nhờ công việc xử lý các ngoại lệ theo những cách thông minh, chúng ta có thể xây dựng bộ mã hóa mạnh mẽ và tối ưu. Nếu bạn quan tâm có thể xem bài viết gốc tại đây

Chủ Đề