Comprobar si el elemento existe usando Selenium Python

Olorunfemi Akinlua 21 junio 2023
Comprobar si el elemento existe usando Selenium Python

Las herramientas de automatización como Selenium nos permiten automatizar procesos web y probar aplicaciones a través de diferentes lenguajes y navegadores. Python es uno de los muchos lenguajes que admite y es un lenguaje muy fácil.

Su cliente Python nos ayuda a conectarnos con los navegadores a través de las herramientas de Selenium. Las pruebas web son vitales para desarrollar aplicaciones web, pero más que eso, nos permiten automatizar procesos web.

Necesitamos acceder al código fuente y verificar ciertos elementos para automatizar dichos procesos.

Este artículo le muestra cómo verificar si un elemento existe en Selenium usando su cliente Python y API.

Use find_element() para verificar si el elemento existe usando Selenium Python

Para hacer uso del cliente Selenium Python, necesitamos instalar su paquete a través de este comando pip:

pip install selenium

Además del cliente de Python, necesitamos tener otras herramientas instaladas si vamos a usarlas, como ChromeDriver. Puede descargarlo e instalarlo con bastante facilidad.

Ahora, podemos usar el módulo Selenium y su sección Excepción para verificar si existe un elemento. Primero, usamos el módulo webdriver para acceder al agente del navegador (Chrome) y usamos el método get() para acceder a la página web que queremos verificar sus elementos.

Luego, use el método find_element() y pase el argumento By.TAG_NAME y el elemento que desea encontrar (por ejemplo, h2). El método find_element() utiliza la estrategia y el localizador By para encontrar elementos.

En el siguiente código, usamos la estrategia By.TAG_NAME para encontrar el elemento que queremos. También podemos usar By.CSS_SELECTOR para buscar elementos.

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.common.exceptions import NoSuchElementException

driver = webdriver.Chrome(executable_path="C:\chromedriver.exe")
driver.implicitly_wait(0.5)
driver.get("https://thehackernews.com/")

try:
    element = driver.find_element(By.TAG_NAME, "h2")
    hackHead = element.text
    print("Element exist")
    print(hackHead)
except NoSuchElementException:
    print("Element does not exist")

driver.close()

Producción :

DeprecationWarning: executable_path has been deprecated, please pass in a Service object
  driver = webdriver.Chrome(executable_path="C:\chromedriver.exe")

DevTools listening on ws://127.0.0.1:57551/devtools/browser/dce0d9db-6c42-402e-8770-13999aff0e79
Element exist
Pay What You Want for This Collection of White Hat Hacking Courses

Obtuvimos “Pague lo que quiera por esta colección de cursos de White Hat Hacking” como el contenido del elemento, pero es posible que observe una “Advertencia de desuso” alrededor de la “ruta_ejecutable”.

DeprecationWarning: executable_path has been deprecated, please pass in a Service object
  driver = webdriver.Chrome(executable_path="C:\chromedriver.exe")

Para lidiar con eso, necesitamos instalar el módulo webdriver-manager para manejar las interacciones del navegador usando el comando pip.

pip install webdriver-manager

Luego, importe el módulo a su código usando las declaraciones a continuación.

from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service

Y use el atributo servicio en lugar de ruta_ejecutable, y pase los métodos Servicio() y ChromeDriverManager() al atributo servicio.

driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))

Ahora, el código se convierte en:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.common.exceptions import NoSuchElementException
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service

driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
driver.implicitly_wait(0.5)
driver.get("https://thehackernews.com/")

try:
    l = driver.find_element(By.TAG_NAME, "h2")
    s = l.text
    print("Element exist -" + s)
except NoSuchElementException:
    print("Element does not exist")

driver.close()

Producción :

[WDM] - Downloading: 100%|████████████████████████████████████████████████████████████████████████████████████████████████| 6.29M/6.29M [00:03<00:00, 2.13MB/s]

DevTools listening on ws://127.0.0.1:57442/devtools/browser/2856cae0-e665-42c3-a20d-a847d52658c1
Element exist
Pay What You Want for This Collection of White Hat Hacking Courses

Debido a que es la primera vez que se ejecuta, es posible que vea la parte [WDM] de la salida; de lo contrario, es solo el mensaje DevTools y la salida de su código lo que debería estar visible. Con esto, puede verificar fácilmente si existe un elemento en Selenium usando su cliente Python.

Olorunfemi Akinlua avatar Olorunfemi Akinlua avatar

Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.

LinkedIn

Artículo relacionado - Python Selenium