Se voglio utilizzare implicitlyWait
, dove dovrei inserire browser.manage().timeouts().implicitlyWait(5000);
nel test?Dove mettere implicitamenteWait in Protractor?
risposta
Aggiungilo nella funzione onPrepare()
del file conf.js del tuo goniometro. Il motivo per aggiungere implicitlyWait()
è perché l'attesa implicita è il tempo predefinito che il goniometro attende prima di passare o generare un errore per un'azione. Lasciando il goniometro sapere qual è il tempo di attesa implicito, anche prima dell'avvio dei test è il modo migliore per utilizzarlo e la funzione onPrepare()
viene eseguita prima di tutte le suite di test e solo una volta.
Scenario di esempio:
Supponiamo di avere la linea di sotto di codice -
element(LOCATOR).getText();
nelle specifiche di test e goniometro lo esegue dopo l'inizio l'automazione a pagina. Ora, se l'elemento con il locatore specificato non viene trovato nella pagina, il goniometro non genera immediatamente un errore, ma attende il tempo di attesa implicit
da completare. Nel frattempo, fino al timeout implicito, controlla se l'elemento può essere posizionato sul DOM. Al termine del tempo di attesa implicit
se l'elemento non viene trovato, il goniometro genera il rispettivo errore. Quindi per tutte le operazioni che eseguite è necessario lasciare che il goniometro conosca il tempo di attesa implicito ben prima della mano.
Usage:
onPrepare: function(){
browser.manage().timeouts().implicitlyWait(5000);
},
Grazie mille! Mi hai aiutato molto a capire. – winlinuz
Does, browser.manage(). Timeouts(). ImplicitlyWait (5000); attendi anche la visibilità dell'elemento o la presenza dell'elemento in DOM? [Girish] (https://stackoverflow.com/users/4180674/girish-sortur) –
Se l'elemento è presente in DOM, ma non è visibile, allora in questo caso, il goniometro implicito lo attende prima di generare un errore? ("l'elemento non è visibile?") –