Come gestire le condizioni previste in selenio

Come gestire le condizioni previste in selenio

Gli errori arrivano inaspettatamente e possono interrompere il normale flusso di esecuzione. Questo è qualcosa che ogni programmatore o tester deve affrontare in un punto o nell'altro durante la codifica e il test. Il motto principale dei tester è quello di eseguire il debug dell'errore e risolverlo. In questo articolo, capiremo quali sono le eccezioni in selenio e come gestirle. Dopodiché, vedremo una panoramica della gerarchia dell'eccezione. Parleremo anche dei tipi di eccezioni e della differenza tra le eccezioni controllate e incontrollate e la sintassi di base della gestione.

Cos'è la gestione delle eccezioni?

Un'eccezione è un evento durante un'esecuzione programmata che impedisce alle istruzioni di seguire il flusso regolare del programma. Per dirla dall'altra parte, tutto ciò che fa fermare la custodia del test mentre è in esecuzione è noto come un'eccezione. Quando si verifica uno, l'applicazione si ferma e viene prodotto un oggetto di eccezione. Dopo aver sollevato un'eccezione, il programma cerca qualcuno che lo gestisce. Molte informazioni di debug sono fornite dall'oggetto eccezione tra cui la gerarchia del metodo, il numero di linea in cui si è verificata l'eccezione, il tipo di eccezione e altro ancora. Di conseguenza, vedrai i vari errori mentre si lavora con il webdriver Selenium a seconda del codice che scrivi. A volte, lo stesso codice funziona bene mentre gli altri non lo fanno. Quando esegui i tuoi script, potresti incontrare diverse eccezioni. Pertanto, ogni volta che si crea uno script, ti sforzi di fornire la massima qualità di codice, quindi se si verifica un primo problema, crea e lancia un'eccezione e infine gestirlo.

Gerarchia di eccezione

Le circostanze eccezionali dovrebbero essere catturate dall'applicazione dell'utente utilizzando questa classe. Un altro ramo, come l'errore, viene utilizzato dagli altri sistemi di runtime Java per indicare gli errori associati ad esso. Fondamentalmente, in base alle eccezioni, ci sono due tipi di eccezioni: uno è controllato e l'altro è deselezionato. Vediamo la differenza tra queste due eccezioni: eccezioni controllate e non controllate.

Un'eccezione controllata significa che è un'eccezione che è. L'eccezione incontrollata si verifica durante l'esecuzione anche se il compilatore la ha verificato durante la compilation. Le eccezioni controllate sono essenzialmente definite eccezioni a tempo di compilazione mentre le eccezioni incontrollate sono chiamate eccezioni di runtime. Per comprendere l'eccezione selezionata, il programmatore dovrebbe gestire questa eccezione per mantenere il normale flusso di esecuzione. Mentre le eccezioni di runtime possono essere ignorate e non ci sarà molta differenza nel flusso di esecuzione del programma. Questa è la differenza principale tra le eccezioni controllate e non controllate.

Eccezioni di classe

public static void main (string args [])
Tentativo

catch (eccezione e)

Ecco come appare la struttura dell'eccezione. Crei una classe e scrivi un blocco di prova all'interno del metodo principale in cui si scrive un codice che può aumentare un'eccezione. All'interno del blocco catch, scrivi il codice che deve eseguirlo. Il codice aumenta un'eccezione che è inclusa nel blocco di prova. Quindi, il codice lancia un'eccezione nel blocco Try. Quindi, per continuare con il normale flusso di esecuzione, viene gestito nel blocco di cattura.

Tipi di eccezioni in selenio

Esistono diversi tipi di eccezioni menzionate nel seguente:

WebDriveRexception

Se è stato installato il driver Chrome, ma si tenta di condurre un'attività, si verifica un errore quando si tenta di farlo. Questa eccezione è sollevata su un driver Mozilla Firefox che è un guidatore geeko.

NosuchelementException

Questa eccezione viene lanciata quando il driver Web non trova l'elemento nella struttura del tamburo. Cioè, se non si è in grado di individuare un elemento particolare, non dice tale elemento eccezione. Cioè, se quell'elemento non è presente, questa è la ragione per cui non lancia tale elemento eccezione.

Tentativo
autista.get ("https: // ABC.com/iforame ”);
autista.FindElement (di.id ("timcd")).SendKeys (.. .keystosend: "ciao");
catch (notfoundException e)
sistema.fuori.printin ("non trovato");
e.printStackTrace ();
;

Abbiamo visto un'eccezione "non trovata" in questo codice. Innanzitutto, devi andare all'URL. Quindi, passa al frame e quindi digita qualcosa. Se non si cambia e digiti direttamente in un elemento, mostra l'errore "non trovato" nell'elemento cattura.

NosuchFrameException

Se si desidera eseguire un'azione che passa tra i frame e non sei in grado di farlo perché il frame figlio non è presente o il telaio genitore non è in grado di navigare nel telaio del figlio, non viene sollevata alcuna eccezione di tale cornice in tali casi.

NoAlertPresentException

Questo errore appare quando tentiamo di eseguire una funzione accettata o rifiutata e non è necessaria nella posizione necessaria.

Allo stesso modo, abbiamo un avviso JavaScript. Se non facciamo clic sull'avviso JavaScript, in questo caso non ci sarà un avviso. Se proviamo a cambiare quell'avviso, ti dà un NoAlertPresentException.

TimeoutException

Questa eccezione viene lanciata quando un comando non completa l'attività in un determinato periodo di tempo.

Ecco i metodi per gestire un'eccezione con la sintassi:

Prova: viene utilizzato per specificare un blocco in cui posizioniamo il codice di eccezione.

Tentativo
// Il codice è scritto qui
catch (eccezione_class_name)

Catch: questo blocco viene utilizzato per gestire l'eccezione.

Tentativo
Catch (ExceptionName E1)
/// Catch Block Code

Lancio: questo è usato per lanciare un'eccezione.

catch (eccezione e)
Sistema.fuori.println ("Element non è presente.");
lanciare (e);

Lancia: è usato per dichiarare qual è l'eccezione.

public static void main (string [] args)
lancia interruptedException

Infine: viene utilizzato per eseguire il codice cruciale del programma.

Tentativo
//// Critical Code qui
cattura (eccezione E1)
[/// Catch Block Code
Finalmente
//// questo blocco di codice è deve eseguire

Metodi per gestire un'eccezione con i codici

Innanzitutto, creiamo una classe eccezionale.

Classe pubblica ExceptionHandlingExample

Prima lanciamo il driver Chrome per lanciare Google e navigare attraverso un determinato sito Web. Quindi, usiamo il filo dovere per dormire per 3000, che è di tre millisecondi. Quindi, troviamo un elemento per nome che è "falso.clic". Ora, questo elemento non è presente, quindi ciò che fa è lanciare un'eccezione chiamata eccezione "Nessun elemento tale". Quindi, dopo aver eseguito il codice, vedremo il driver Chrome lanciato.

WebDriver myDriver = new ChromeDriver ();
mydriver.get (https: // www.Google.com);
Filo.Sleep (3000);
mydriver.FindElement (di.nome ("falso").clic;

Nulla è successo perché l'eccezione è sollevata qui. Come possiamo vedere, lancia un'eccezione che dice "nessun elemento del genere".

Ora, per gestirlo, usiamo il blocco di prova e catturare. Nel blocco Try, usa il comando seguente:

catch (NosuchelementException e)
Sistema.fuori.println ("Element non è presente.");
Sistema.fuori.println ("hi");

Sistema.fuori.println ("hi");

Scriviamo il codice che lancia un'eccezione. Questo codice lancia già un'eccezione che non viene trovato tale elemento. Nel blocco di prova, scriviamo l'eccezione "nessun elemento del genere". All'interno di ciò, stampiamo "Element non è trovato" e "Hello". Ancora una volta, fuori dal blocco di prova, vogliamo verificare se il normale flusso di esecuzione viene trasportato o meno. Ecco perché stampiamo questa affermazione al di fuori del blocco. Dopo aver eseguito il codice, non lancia l'eccezione. Stampa "ciao" due volte: la prima volta è all'interno del blocco catch e la seconda volta è fuori dal tentativo e cattura. Per garantire che il flusso normale dell'esecuzione non sia interrotto, è così che possiamo gestire le eccezioni:

In questo esempio, vediamo il fallimento della condizione previsto e come gestirlo.

Elenco li;
@Oltrepassare
pubblico void performas (t attore)
li = browsetheWeb.come (attore).Finadall (di.xPath (“// div [@class = 'nav-fill'] // a [@data-csa-c-type = 'link']”)));
per (int i = 0; i
Sistema.fuori.println ("-WebElementFacade Elenco del menu Nome ###" +Li.Ottieni (i).getText ());

Dopo aver eseguito questo codice, otteniamo il risultato in cui stampa tutti i valori, ma il test fallisce nella finestra di output.

Ora fissiamo questo errore. Se loviamo più di un valore prima di stampare il suo valore, dobbiamo verificare se l'elemento viene visualizzato o meno o il valore viene visualizzato o meno. Quindi, possiamo stampare quel valore. In tal caso, scriviamo se il "li. Ottenere.IS ”viene visualizzata la condizione. Questo per controllare la condizione. Quindi, scriviamo l'istruzione di stampa. Dopo aver eseguito il codice, legge tutti i valori. Di conseguenza, facciamo superare il test. Legge tutti i valori e, di conseguenza, passiamo il test.

Conclusione

Comprendiamo le condizioni previste in selenio. Abbiamo anche discusso di tutte le eccezioni controllate e incontrollate nel mezzo dell'articolo. Abbiamo discusso dei tipi di eccezioni con esempi. Infine, abbiamo coperto come gestire le eccezioni con i codici. Questo articolo contiene tutti i dettagli sulla gestione del selenio e sulle circostanze previste.