Cómo verificar si existe un elemento en Selenium

Cómo verificar si existe un elemento en Selenium

Esta publicación examina cómo usar el Selenium WebDriver para determinar si un elemento existe o no. Usando algunos ejemplos simples y fáciles a través de la codificación, demostramos cómo verificar la existencia de elementos en el Selenium WebDriver. Primero, explicamos qué importantes webelementos hay en Selenium y cómo puede encontrar los elementos en Selenium con la ayuda de diferentes ejemplos. Primero discutamos qué son Selenium WebDrivers y Webelements.

Selenium WebDriver y Selenium Webelements

Selenium WebDriver facilitó la vida de los programadores con sus características útiles. Selenium WebDriver se refiere a los enlaces de idioma y las muchas implementaciones del código de control del navegador. Un elemento HTML se llama Webelement que permite a los usuarios controlar las pruebas automatizadas. A través de Webelements, Selenium WebDriver ofrece interacciones bien organizadas como encontrar los elementos, obtener las propiedades de los atributos, confirmar el texto en el webelemento y más. Podemos automatizar una amplia variedad de entornos de prueba con la guía de Selenium.

Comandar encontrar un elemento en Selenium

El objeto "By" es un parámetro para el comando Buscar elemento que ofrece un objeto del tipo de webelemento. Varias técnicas de localización como nombre, identificación, nombre de clase, xpath, texto de enlace, etc. se puede usar con el objeto "por".

Aquí está la sintaxis para encontrar un elemento:

Webelement elementname = controlador.findelement (por.LocalatorStrategy ("LocatorValue"));

Cualquiera de los siguientes valores que incluyen el nombre, ID, nombre de clase, nombre de la etiqueta, texto del enlace, prueba de enlace parcial y XPath, se puede utilizar para la estrategia del localizador.

Cualquiera de estos valores se puede ingresar en el localizador para localizar el elemento web.

Cómo verificar si existe un elemento en Selenium

Se pueden adoptar varias formas para verificar si un cierto elemento está en el Selenium WebDriver o no. Aquí hay un resumen de las formas más típicas de averiguar si los elementos existen en WebDriver o no.

ElementInElement (...) El segundo GetElementsByClassName (...)
ElementInElement contiene (ElementName, ElementValue) (nombre, valor).

El resultado es booleano. Si el elemento está presente, produce un valor de bool de verdad. De lo contrario, responde falso. Proporcionar un nombre nulo también produce un resultado verdadero, mientras que proporcionar una cadena produce un resultado falso.

Ahora, para comprender este procedimiento, iremos a nuestra interfaz y ejecutaremos algunos códigos de ejemplo.

Ejemplo 1:

Este primer ejemplo es muy básico y simple, que se crea para principiantes y desarrolladores de niveles experimentados. El programa comienza con la importación del controlador.Encuentre para obtener los webelementos con el nombre de la etiqueta para verificar la existencia de los elementos web en él. Proporcionamos el siguiente comando completo al que puede consultar. Después de eso, explicamos este código en trozos para que pueda entender qué acción realizan.

Org de importación.abierto.selenio.Por;
Org de importación.abierto.selenio.Webdriver;
Org de importación.abierto.selenio.Webelemento;
Org de importación.abierto.selenio.cromo.Cromedriver;
Checkexists de cheques de clase pública
Public static void main (String [] args)

Sistema.setProperty ("WebDriver.cromo.conductor", "./conductores/cromedriver.exe");
WebDriver Driver1 = new ChromedRiver ();
conductor1.Obtener ("http: // demoqa.com/registro/"); conductor1.administrar().tiempo de espera ().implícitamente wait (2000, TimeUnit.Miliseconds);
Lista DD = Driver1.findelements (por.TagName ("Seleccionar"));
if (dd.size ())> 0) Sistema.afuera.println ("Existe desplegable");
demás


Sistema.afuera.println ('sin desplegable ");-

Ahora, intentemos entender el código anterior.

Si queremos verificar si los desplegables existen o no, debemos saber dónde están presentes los menores en la estructura hacia abajo. Si inspecciona un menú desplegable en un sitio web en particular, los desplegables están debajo de las etiquetas de selección. La captura de pantalla está conectada para ver dónde podemos encontrar la pestaña Seleccionar y el desplegable.

Si hay alguna etiqueta de selección presente en la página web en particular, los desplegables están en la página. Si no hay una etiqueta de selección actual, no hay desplegables presentes o existentes. Entonces, necesitamos usar esta pista:

Lista DD = controlador.findelements (por.TagName ("Seleccionar"));

Usamos el controlador.Método FindElements () para determinar si un elemento está presente en una página web. Como sabemos, se encuentra una lista de semejas utilizando el parámetro "por localizador" que devuelve la función FindElements (). Si se encuentra el elemento, se devuelve una lista de elementos web no cerosos. De lo contrario, se devuelve una lista de tamaño 0. Como resultado, la longitud de la lista se puede utilizar para determinar si una entrada está presente o no.

Tenga en cuenta que cuando busque el elemento, esta función espera hasta que la espera "implícita" se da al controlador como damos en nuestra codificación:

conductor1.administrar().tiempo de espera ().implícitamente wait (2000, TimeUnit.Miliseconds);

Si sabemos que un elemento está disponible de inmediato en la página web, podemos cambiar el valor de la espera "implícita" a su valor predeterminado después de configurarlo en 0, verificando la presencia de elementos y acelerando el proceso.

Si solo pone "Seleccionar", no podrá obtener ninguna salida. Solo va a la etiqueta de selección y apunta a él.

Eso es todo. Si desea verificar si los descendentes existen o no, debe almacenarlo en la variable "Lista de webelemento".

Después de ejecutar el código, obtenemos el resultado de que existe un "desplegable" como puede ver en la ilustración proporcionada.

Ejemplo 2:

En el ejemplo anterior, utilizamos el método de encontrar un elemento por TagName para ver si existe un elemento desplegable o no. Ahora, a partir de este ejemplo, sabrá cómo encontrar los elementos utilizando los métodos de prueba y captura.

Ejecutemos el código y verifiquemos cómo usarlo:

Sistema.setProperty ("WebDriver.geco.controlador ","/usuarios/abc/escritorio/c/dz/biblioteca/xyz ");
WebDriver Driver1 = new Firefoxdriver ();
conductor1.Get (https: // www.Google.com)
intentar
conductor1.findelement (por.xpath ("// input [@id = 'djahvljadhlkgj'))
Sistema.afuera.printin (el elemento existe);

Catch (nosuchelementException e) sistema.afuera.printin ("Elemento no existe);

Para verificar si el elemento existe o no, usamos un bloque de intento y capturar. Todo lo que necesitamos hacer es intentar encontrar el elemento.

conductor.findelement (por.xPath ("// input [@id = 'djahvljadhlkgj']"));

Ahora, el fragmento de código anterior encuentra el elemento usando el XPath:

Catch (nosuchelementException e) sistema.afuera.printin ("Elemento no existe);

Ahora, si el elemento no se encuentra en el bloque de captura, significa que no hay ningún elemento presente en la página con este tipo de localizador en este xpath. Entonces, el error se atrapa para que podamos detectar la excepción.

Después de ejecutar el código, arroja el error "No hay excepción de elemento". Esto es lo que queremos recuperar en el bloque de captura:

intentar
unidad1R.findelement (por.xpath ("// input [@id = 'djahvljadhlkgj'))
Sistema.afuera.printin (el elemento existe);

Catch (nosuchelementException e) sistema.afuera.printin ("Elemento no existe);

Lo que hicimos es que tomamos un bloque de intentos. En ese bloque de try, descubrimos el elemento que queremos encontrar usando cualquier localizador que queramos usar. Si se encuentra el elemento, simplemente se ejecuta y la declaración dice que el elemento existe y que nunca va al bloque de captura. Si no se encuentra el elemento, no arroja tal elemento. Entonces, simplemente ejecuta el "elemento no encontrado" en el bloque de captura.

Ejemplo 3:

En este caso, usamos el controlador.Encuentra elementos por identificación. Entonces, obtenemos el recuento de ese elemento en particular. Si no es cero, significa que el elemento está presente. Siempre pruebe los elementos de búsqueda, no el elemento Find. La diferencia entre los dos es que si usa el elemento Find, arroja la excepción "No hay tal elemento encontrado". Pero los elementos de búsqueda no lanzan esta excepción incluso si el elemento está presente o no. Solo recuerde usar este método Find Elements y verificar el recuento de ese valor o esa lista de ese elemento. Si el recuento es 0, eso significa que el elemento no está presente.

if (controlador1.findelements (por.Id ("ABC")).Contar!= 0)
consola.WriteLine ("El elemento está presente");
demás
consola.WriteLine ("El elemento no está presente");

En este código, recibimos el recuento de 0, lo que significa que el elemento no está presente.

Conclusión

Discutimos sobre el uso de la codificación para determinar si los elementos en Selenium WebDriver existen o no. La idea del parámetro para encontrar el comando de elemento que devuelve un objeto del tipo de webelemento se muestra aquí desde los ejemplos. En este artículo, entendemos el concepto de cómo encontrar la existencia de elementos web en Selenium WebDrivers utilizando diferentes métodos. Puede consultar este artículo desde el principio hasta el final para comprender mejor todo el concepto.