5

में अज्ञात त्रुटियों को संभालना मेरे पास सेटअप है जो multiCapabilities के माध्यम से कॉन्फ़िगर किए गए एकाधिक ब्राउज़र के साथ है, जो ब्राउज़रस्टैक पर परीक्षण चला रहा है।प्रोटैक्टर

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

कि जाँच करता है कि ब्राउज़र कंसोल खाली (कंसोल पर कोई त्रुटि) है:

मेरी कुंजी चांदा चश्मा में से एक/परीक्षण निम्नलिखित afterEach() खंड हो।

समस्या है: जब मैं इंटरनेट एक्सप्लोरर के खिलाफ इस कल्पना चलाने के लिए, मैं एक UnknownError हो रही है:

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

एक त्वरित अनुसंधान के बाद, मुझे पता चला है कि IE selenium webdriver अभी तक सत्र का समर्थन नहीं करता लॉग:

सवाल यह है: मैं इस UnknownError को कैसे पकड़ सकता हूं और इस विशिष्ट त्रुटि के मामले में spec को पास कर सकता हूं?

या, इसे चारों ओर बदलने के लिए, क्या afterEach() ब्लॉक क्षमता/ब्राउज़र-विशिष्ट होना संभव है, या पता है कि वर्तमान में कौन सी क्षमता चल रही है?


मैं try/catch का उपयोग करें और अपवाद sender पर भरोसा कोशिश करने की कोशिश की है, लेकिन console.log() निष्पादित नहीं है:

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

समाधान के लिए, मैं एक ही कल्पना की प्रतिलिपि रहा हूँ, लेकिन है कि afterEach() में नाकाम रहने के बिना विशेष रूप से इंटरनेट एक्सप्लोरर के लिए ब्लॉक।

उत्तर

5

मिले एक ही विकल्प - getCapabilities() का उपयोग कर मौजूदा ब्राउज़र नाम पुनः प्राप्त करने के:

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); 
      }); 
     } 
    }); 
}); 

इस मामले ब्राउज़र लॉग में इंटरनेट एक्सप्लोरर के खिलाफ चल रहा है, तो जाँच नहीं किया जाएगा।

संबंधित मुद्दे