5

Ho una configurazione protractor con più browser configurati tramite multiCapabilities, esecuzione di test su browsstack.Gestione errori sconosciuti nel goniometro

Una delle mie specifiche goniometro chiave/test contengono il seguente afterEach() blocco:

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

che controlla che la console del browser è vuota (nessun errore sulla console).

Il problema è: quando si esegue questa spec contro Internet Explorer, sto diventando un UnknownError:

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

Dopo una rapida ricerca, ho scoperto che IE selenium webdriver non supporta ancora la sessione log:

La domanda è: come posso prendere questo UnknownError e lasciare passare la specifica in caso di questo errore specifico?

Oppure, per capovolgere, è possibile avere una capacità di blocco afterEach()/specifico del browser o sapere quali sono le capacità attualmente in esecuzione?


Ho cercato di usare try/catch e cercare basandosi su un'eccezione sender, ma console.log() non viene eseguita:

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

Per aggirare il problema, sto duplicare le stesse specifiche ma senza che in mancanza afterEach() blocco, specificamente per Internet Explorer.

risposta

5

Trovato una possibilità - utilizzando getCapabilities() per recuperare il nome del browser corrente:

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

In questo caso i registri del browser non sarebbe verificata se in esecuzione contro Internet Explorer.