5

Sto utilizzando AngularJS e voglio eliminare un collegamento, in questi casi, viene visualizzata una finestra di avviso per confermare l'eliminazione.Come fare clic su OK nella casella di avviso utilizzando il rapportatore

Sto provando a eseguire il test e2e utilizzando il rapportatore, come posso confermare in una casella di avviso?

ho provato:

browser.switchTo().alert().accept() 

ma non sembra funzionare.

Esiste una disposizione nel goniometro per la gestione delle caselle di avviso?

risposta

2

provare

browser.driver.get('URL'); 
browser.switchTo().alert().accept(); 

o

browser.ignoreSynchronization = true 
browser.get('URL'); 
browser.switchTo().alert().accept(); 

o: browser.switchTo().alert() not working in protractor

+0

Ancora ottengo una "UnexpectedAlertOpenError: alert inaspettato aperto" errore –

+0

@PrateekChoudhury hai trovato una soluzione? – Nick

+0

Non utilizzare ignoreSynchronization. La versione attuale richiede 'browser.waitForAngularEnabled (false)' – Machtyn

0

Impostare una promessa di attendere per l'avviso di essere presenti :

function getAlertAndClose(element) { 
    return element.click().then(function (alertText) { 
     //Wait for alert to pop up 
     browser.wait(function() { 
      return browser.switchTo().alert().then(
       function() {return true;}, 
       function() {return false;} 
      ); 
     }, 3000); // Wait timeout 

     // Test alert is what you expect 
     var popupAlert = browser.switchTo().alert(); 
     alertText = popupAlert.getText(); 
     expect(alertText).toMatch('Are you sure you want to delete this?'); 

     // Close alert 
     popupAlert.dismiss(); 
    }) 
} 

var saveButton = $('.saveBtn'); 
getAlertAndClose(saveButton); 
Problemi correlati