5

Tôi có thiết lập protractor với nhiều trình duyệt được định cấu hình qua multiCapabilities, chạy thử nghiệm trên trình duyệt.Xử lý lỗi không xác định trong thước đo

Một trong những thông số kỹ thuật thước đo quan trọng của tôi/kiểm tra chứa afterEach() khối sau:

afterEach(function() { 
    browser.manage().logs().get("browser").then(function (browserLog) { 
     expect(browserLog.length).toEqual(0); 
    }); 
}); 

để kiểm tra rằng trình duyệt giao diện điều khiển trống (không có lỗi trên giao diện điều khiển).

Vấn đề là: khi tôi chạy spec này chống lại Internet Explorer, tôi nhận được một UnknownError:

UnknownError: Command not found: POST /session/6b838fe8-f4a6-4b31-b245-f4bf8f37537c/log

Sau một nghiên cứu nhanh chóng, tôi đã phát hiện ra rằng IE selenium webdriver chưa hỗ trợ phiên bản ghi:

Câu hỏi đặt ra là: làm thế nào tôi có thể bắt được số UnknownError và để thông số kỹ thuật vượt qua trong trường hợp lỗi cụ thể này?

Hoặc, để xoay vòng, có thể có khả năng chặn afterEach()/trình duyệt cụ thể hoặc biết khả năng hiện đang chạy nào không?


Tôi đã cố gắng sử dụng try/catch và cố gắng dựa vào ngoại lệ sender, nhưng console.log() không được thực hiện:

afterEach(function() { 
    try { 
     browser.manage().logs().get("browser").then(function (browserLog) { 
      expect(browserLog.length).toEqual(0); 
     }); 
    } 
    catch (e) { 
     console.log(e.sender); 
    } 
}); 

Là một workaround, tôi sao chép spec tương tự, nhưng mà không có thất bại afterEach() chặn, cụ thể cho Internet Explorer.

Trả lời

5

Tìm thấy một lựa chọn - sử dụng getCapabilities() để lấy tên trình duyệt hiện tại:

afterEach(function() { 
    browser.driver.getCapabilities().then(function(caps) { 
     var browserName = caps.caps_.browserName; 

     if (browserName !== "internet explorer") { 
      browser.manage().logs().get("browser").then(function (browserLog) { 
       expect(browserLog.length).toEqual(0); 
      }); 
     } 
    }); 
}); 

Trong bản ghi trình duyệt trường hợp sẽ không được kiểm tra nếu chạy với trình duyệt Internet Explorer.

Các vấn đề liên quan