Come verificare se esiste un elemento in selenio

Come verificare se esiste un elemento in selenio

Questo post esamina come utilizzare il webdriver di selenio per determinare se esiste o meno un elemento. Usando alcuni esempi semplici e facili attraverso la codifica, dimostriamo come verificare l'esistenza di elementi nel webdriver di selenio. Innanzitutto, spieghiamo quali sono importanti i webelements in selenio e come puoi trovare gli elementi in selenio con l'aiuto di diversi esempi. Discutiamo per la prima volta cosa sono i webdriver e le webelement di Selenio.

Selenium Webdriver e Selenium WebElements

Il webdriver di Selenio ha reso più facile la vita dei programmatori con le sue funzionalità utili. Selenium Webdriver si riferisce ai legami linguistici e alle numerose implementazioni del codice di controllo del browser. Un elemento HTML è chiamato WebElement che consente agli utenti di controllare i test automatizzati. Attraverso WebElements, Selenium WebDriver offre interazioni ben organizzate come la ricerca degli elementi, l'ottenimento delle proprietà degli attributi, la conferma del testo in WebElement e altro ancora. Possiamo automatizzare un'ampia varietà di ambienti di test con la guida del selenio.

Comanda di trovare un elemento in selenio

L'oggetto "per" è un parametro per il comando Trova Element che fornisce un oggetto del tipo WebElement. Varie tecniche di localizzazione come nome, ID, nome di classe, xpath, testo di collegamento, ecc. può essere usato con l'oggetto "per".

Ecco la sintassi per trovare un elemento:

WebElement ElementName = driver.FindElement (di.Locaterstrategy ("LocatorValue"));

Uno dei seguenti valori tra cui il nome, l'ID, il nome della classe, il nome del tag, il testo del collegamento, il test di collegamento parziale e XPath, può essere utilizzato per la strategia del localizzatore.

Uno di questi valori può essere inserito nel localizzatore per individuare l'elemento Web.

Come verificare se esiste un elemento in selenio

Diversi modi possono essere adottati per verificare se un determinato elemento è nel webdriver di selenio o no. Ecco un riepilogo dei modi più tipici per scoprire se gli elementi esistono nel webdriver o no.

ElementInElement (…) Il secondo getElementsByClassName (…)
ElementInElement contiene (elementName, elementValue) (nome, valore).

Il risultato è booleano. Se l'elemento è presente, produce un valore bool di vero. Altrimenti, risponde false. Fornire un nome nullo produce anche un vero risultato, al contempo una stringa produce un risultato falso.

Ora, per capire questa procedura, andremo alla nostra interfaccia ed eseguiremo alcuni codici di esempio.

Esempio 1:

Questo primo esempio è molto semplice e semplice che viene creato per principianti e sviluppatori di livello esperto. Il programma inizia con l'importazione del driver.Trova per ottenere i webelements con il nome del tag per verificare l'esistenza degli elementi web in esso. Forniamo il seguente comando completo a cui puoi fare riferimento. Dopodiché, spieghiamo questo codice in blocchi in modo che tu possa capire quale azione eseguono.

Org di importazione.Openqa.selenio.Di;
Org di importazione.Openqa.selenio.Webdriver;
Org di importazione.Openqa.selenio.WebElement;
Org di importazione.Openqa.selenio.cromo.Cromedriver;
Classe pubblica checkifexists
public static void main (string [] args)

Sistema.setProperty ("WebDriver.cromo.autista", "./Driver/Chromedriver.exe");
WebDriver Driver1 = new ChromeDriver ();
Driver1.get (“http: // demoqa.com/registrazione/"); Driver1.maneggio().timeouts ().Implicitamente Wait (2000, Time Unit.Milisecondi);
Elenco dd = driver1.findelements (di.tagganame ("select"));
if (dd.size ())> 0) Sistema.fuori.println ("esiste a discesa");
altro


Sistema.fuori.println ('no dropdown ");-

Ora, proviamo a capire il codice precedente.

Se vogliamo verificare se esistono o meno i distorsi. Se ispeziona un discesa in un determinato sito Web, i discese sono sotto i tag selezionati. Lo screenshot è allegato per vedere dove possiamo trovare la scheda Seleziona e il discesa.

Se ci sono tag selezionati presenti nella pagina Web particolare, i discese sono nella pagina. Se non esiste un tag selezionato presente, non ci sono discese presenti o esistenti. Quindi, dobbiamo usare questo suggerimento:

Elenco dd = driver.findelements (di.tagname ("seleziona"));

Usiamo il driver.Metodo FindElements () per determinare se un elemento è presente su una pagina web. Come siamo consapevoli, un elenco di WebElements si trova utilizzando il parametro "By Locator" che viene restituito dalla funzione FindElements (). Se viene trovato l'elemento, viene restituito un elenco di Webelement diverso da zero. Altrimenti, viene restituito un elenco di dimensioni 0. Di conseguenza, la lunghezza dell'elenco può essere utilizzata per determinare se una voce è presente o meno.

Tieni presente che quando cerchi l'elemento, questa funzione attende fino a quando l'attesa "implicita" non viene data per il driver mentre diamo nella nostra codifica:

Driver1.maneggio().timeouts ().Implicitamente Wait (2000, Time Unit.Milisecondi);

Se sappiamo che un elemento è immediatamente disponibile sulla pagina Web, possiamo cambiare il valore di attesa "implicito" al suo valore predefinito dopo averlo impostato su 0, verificando la presenza di elementi e accelerando il processo.

Se metti solo "seleziona", non sarai in grado di ottenere alcun output. Va solo al tag seleziona e puntalo.

È tutto. Se si desidera verificare se esistono o meno i menu down, è necessario archiviare questo output nella variabile "Elenco WebElement".

Dopo aver eseguito il codice, otteniamo il risultato che esiste un "discesa" come puoi vedere nell'illustrazione fornita.

Esempio 2:

Nell'esempio precedente, abbiamo usato il metodo per trovare un elemento per tagname per vedere se esiste o meno un elemento a discesa. Ora, da questo esempio in poi, saprai come trovare gli elementi usando i metodi Try and Catch.

Eseguiamo il codice e controlliamo come usarlo:

Sistema.setProperty ("WebDriver.geco.driver ","/utenti/ABC/desktop/c/dz/libreria/xyz ");
WebDriver Driver1 = new FireFoxDriver ();
Driver1.get (https: // www.Google.com)
Tentativo
Driver1.FindElement (di.xPath (“// input [@id = 'djahvljadhlkgj'))
Sistema.fuori.printin (Element esiste);

catch (NosuchelementException e) Sistema.fuori.printin (“Element non esiste);

Per verificare se l'elemento esiste o meno, utilizziamo un blocco di prova e catturare. Tutto quello che dobbiamo fare è provare a trovare l'elemento.

autista.FindElement (di.xPath (“// input [@id = 'djahvljadhlkgj']”));

Ora, lo snippet di codice precedente trova l'elemento usando XPath:

catch (NosuchelementException e) Sistema.fuori.printin (“Element non esiste);

Ora, se l'elemento non si trova nel blocco catch, significa che non esiste un elemento presente nella pagina con questo tipo di localizzatore in questo XPath. Quindi, l'errore viene catturato in modo da poter catturare l'eccezione.

Dopo aver eseguito il codice, lancia l'errore "nessuna eccezione elemento". Questo è ciò che vogliamo recuperare nel blocco di cattura:

Tentativo
drive1r.FindElement (di.xPath (“// input [@id = 'djahvljadhlkgj'))
Sistema.fuori.printin (Element esiste);

catch (NosuchelementException e) Sistema.fuori.printin (“Element non esiste);

Quello che abbiamo fatto è che abbiamo preso un blocco. In quel blocco di prova, scopriamo l'elemento che vogliamo trovare usando qualsiasi localizzatore che vogliamo usare. Se viene trovato l'elemento, esegue semplicemente e l'affermazione dice che l'elemento esiste e non va mai al blocco di cattura. Se l'elemento non viene trovato, non lancia tale elemento. Quindi, esegue semplicemente "elemento non trovato" nel blocco catch.

Esempio 3:

In questo caso, usiamo il driver.Trova elementi per ID. Quindi, otteniamo il conteggio di quel particolare elemento. Se non è zero, significa che l'elemento è presente. Prova sempre gli elementi di ricerca, non l'elemento di ricerca. La differenza tra i due è che se si utilizza l'elemento Trova, lancia l'eccezione "No Tale Element trovata". Ma gli elementi di ricerca non lanciano questa eccezione anche se l'elemento è presente o no. Ricorda solo di usare questo metodo di trovare elementi e controllare il conteggio di quel valore o quell'elenco di quell'elemento. Se il conteggio è 0, ciò significa che l'elemento non è presente.

if (driver1.findelements (di.Id ("ABC")).Contare!= 0)
console.WriteLine ("Element Is Present");
altro
console.WriteLine ("Element non è presente");

In questo codice, riceviamo il conteggio di 0, il che significa che l'elemento non è presente.

Conclusione

Abbiamo discusso sull'uso della codifica per determinare se gli elementi nel webdriver di selenio esistono o no. L'idea del parametro per trovare il comando elemento che restituisce un oggetto del tipo WebElement è mostrata qui dagli esempi. In questo articolo, comprendiamo il concetto di come trovare l'esistenza di elementi web nei webdriver di selenio utilizzando metodi diversi. Puoi fare riferimento a questo articolo dall'inizio alla fine per comprendere meglio l'intero concetto.