Selenium check if element exists

di Lorenzo Neri

Com’è possibile verificare se un elemento esiste in una pagina web? In altre parole stai cercando di capire come funziona tramite Selenium il check if element exists: è quello che scoprirai leggendo questo articolo fino in fondo!

Tra tutte le cose che ci permette di fare Selenium nella pratica del web scraping, c’è senza dubbio quella di verificare se un determinato elemento esiste nella pagina che stiamo analizzando.

In altre parole, vuoi capire come funziona ciò che in inglese sarebbe il “check if element exists”: non volermene, ma devo in qualche modo intercettarti nelle tue ricerche fatte in lingua anglosassone 😛

Prima di addentrarci nell’argomento però: permettimi di presentarmi.

Il mio nome è Lorenzo Neri e sono un informatico: mi occupo di realizzare contenuti che aiutino persone come te a padroneggiare l’arte del nuovo millennio, l’informatica!

Devi sapere che questo articolo così come tanti altri è nato dalla mia volontà di condividere con te e tanti altri le soluzioni che ho trovato a diversi problemi nelle mie attività lavorative.

Come? Documentando.

E quindi scrivendo i vari articoli che possano aiutare persone come te che mi stai leggendo a risolvere gli stessi problemi che ho incontrato io che trovi sul mio blog.

Su Selenium ho parlato in diversi articoli: in particolar modo visto che mi sono focalizzato sì sul suo utilizzo ma con Python, a distanza di un click proprio qui puoi trovare tutti i miei articoli su Python.

Ma ciò detto, concentriamoci sul perché sei su questa pagina.

Check if element exists: verificare se un elemento è presente in una pagina web.

Devo essere totalmente onesto con te: non esiste un metodo unico per concretizzare la verifica di cui stiamo parlando.

Verificare se un certo elemento è presente oppure no all’interno di una pagina web, lo si può fare per diverse modalità.

Possiamo verificare per classi CSS, per tipologia di tag HTML, per Xpath addirittura.

Devi sapere infatti, che Selenium permette di usare sì il metodo “find_element(s)”: ma in diverse salse.

Se proprio devo dirtela tutta, sulla documentazione ufficiale trovi un elenco completo di tutti i metodi a disposizione, ma… Perché mi focalizzo sui metodi “find_elements”?

Per questi non si limitano al primo elemento che matcha con la nostra ricerca.

Al contrario tornano una lista: che in caso negativo può anch’essere vuota.

Ma facciamo un paio di esempi.

Abbiamo a nostra disposizione il seguente HTML:

<html>
 <body>
  <form id="formLogin">
   <input id="username" name="nomeUtente" type="text" />
   <input id="pass" name="password" type="password" />
   <input name="bottone" type="submit" value="Accedi" />
   <input name="bottone" type="button" value="Ripristina" />
  </form>
</body>
</html>

Se volessi per esempio verificare che esistano gli elementi il cui nome è “bottone”:

bottoni = driver.find_elements_by_name("bottone")

Nel nostro caso, “bottoni” sarà una lista di due elementi, sfruttando il potere del metodo “find_elements_by_name”.

Diversamente, posso basarmi anche sul tipo di tag HTML. Come?

Così:

inputs = driver.find_elements_by_tag_name("input")

Lascio indovinare a te quale sarà il contenuto della variabile che sto utilizzando 😛

In conclusione quindi, con Selenium per verificare se un elemento esiste, quindi attuare la “check if element exists” abbiamo diversi metodi: non ne esiste uno giusto o uno sbagliato.

Sta alle tue esigenze e preferenze.

Continua a scoprire di più con questi articoli!

Lascia un commento

Questo sito potrebbe fare uso di cookie e siccome l'UE mi obbliga a fartelo presente, eccoti il classico banner dove puoi decidere come gestirli. Accetta Leggi di più