Información sobre herramientas en selenio
Una información sobre herramientas en Selenium es un texto que aparece cuando un mouse se desplaza sobre un objeto en una página web. El objeto puede ser un enlace, una imagen, un botón, un área de texto, etc. El texto de información sobre herramientas a menudo brinda más información sobre el objeto sobre el que el usuario pasa el cursor del mouse.
La información sobre herramientas se implementaba tradicionalmente como un atributo de 'título' para un elemento. El valor de este atributo se mostró como información sobre herramientas al pasar el mouse por encima. Este es un texto estático que proporciona información del elemento sin estilo.
Ahora, hay muchos complementos disponibles para la implementación de 'sugerencias de herramientas'. Se están implementando información sobre herramientas avanzada con estilo, renderizado, imágenes y enlaces utilizando complementos de JavaScript / JQuery o utilizando información sobre herramientas CSS.
- Para acceder o verificar la información sobre herramientas estática que se implementa utilizando el atributo HTML "title", simplemente podemos usar el método getAttribute ("title") del WebElement. El valor devuelto de este método (que es el texto de información sobre herramientas) se compara con un valor esperado para la verificación.
- Para otras formas de implementación de información sobre herramientas, tendremos que usar la "API de interacciones de usuario avanzadas" proporcionada por el controlador web para crear el efecto de desplazamiento del mouse y luego recuperar la información sobre herramientas para el elemento.
Un resumen de la API de interacciones de usuario avanzadas:
La API de interacciones de usuario avanzadas proporciona la API para las acciones del usuario como arrastrar y soltar, desplazarse, seleccionar múltiples, presionar y soltar teclas y otras acciones con el teclado o el mouse en una página web.
Puede consultar este enlace para obtener más detalles sobre la API.
https://seleniumhq.github.io/selenium/docs/api/java/index.html?org/openqa/selenium/interactions/Actions.html
Aquí, veamos cómo usar un par de clases y métodos que necesitaríamos para mover un elemento deslizante por un desplazamiento.
Paso 1) Para utilizar la API, es necesario importar los siguientes paquetes / clases:
Paso 2) Crea un objeto de la clase "Acciones" y construye la Secuencia de acciones del usuario. La clase Actions se usa para construir la secuencia de acciones del usuario como moveToElement (), dragAndDrop (), etc. La API proporciona varios métodos relacionados con las acciones del usuario.
El objeto controlador se proporciona como parámetro a su constructor.
Paso 3) Cree un objeto de acción utilizando el método build () de la clase "Acciones". Llame al método perform () para ejecutar todas las acciones creadas por el objeto Actions (constructor aquí).
Hemos visto cómo utilizar algunos de los métodos de Acciones de usuario proporcionados por la API: clickAndHold (elemento), moveByOffset (10,0), release (). La API proporciona muchos de estos métodos.
Consulte el enlace para obtener más detalles.
Cómo obtener texto de información sobre herramientas en Selenium Webdriver
Veamos la demostración de cómo acceder y verificar las sugerencias de herramientas en el escenario simple
- Escenario 1: la información sobre herramientas se implementa mediante el atributo "título"
- Escenario 2: la información sobre herramientas se implementa mediante un complemento de jQuery.
Escenario 1: atributo HTML 'title'
Para este caso, tomemos el sitio de ejemplo: http://demo.guru99.com/test/social-icon.html.
Intentaremos verificar la información sobre herramientas del icono "github" en la parte superior derecha de la página.
Para hacerlo, primero buscaremos el elemento y obtendremos su atributo 'título' y verificaremos con el texto de información sobre herramientas esperado.
Dado que estamos asumiendo que la información sobre herramientas está en el atributo "title", ni siquiera estamos automatizando el efecto de desplazamiento del mouse, sino simplemente recuperando el valor del atributo usando el método "getAttribute ()".
Aqui esta el codigo
import org.openqa.selenium.By;importar org.openqa.selenium.WebDriver;importar org.openqa.selenium.chrome.ChromeDriver;importar org.openqa.selenium. *;Información sobre herramientas de clase pública {public static void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/social-icon.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Controlador WebDriver = nuevo ChromeDriver ();driver.get (baseUrl);String esperabaTooltip = "Github";// Encuentra el ícono de Github en la parte superior derecha del encabezadoWebElement github = driver.findElement (By.xpath (".//*[@ class = 'soc-ico show-round'] / a [4]"));// obtiene el valor del atributo "título" del icono de githubString actualTooltip = github.getAttribute ("título");// Afirmar que el valor de la información sobre herramientas es el esperadoSystem.out.println ("Título real de la información sobre herramientas" + información actual sobre herramientas);if (actualTooltip.equals (esperabaTooltip)) {System.out.println ("Caso de prueba aprobado");}driver.close ();}}
Explicación del código
- Busque el WebElement que representa el icono "github".
- Obtenga su atributo "title" usando el método getAttribute ().
- Confirme el valor frente al valor de información sobre herramientas esperado.
Escenario 2: Complemento de JQuery:
Hay muchos complementos de JQuery disponibles para implementar la información sobre herramientas, y cada uno tiene una forma de implementación ligeramente diferente.
Algunos complementos esperan que el HTML de información sobre herramientas esté presente todo el tiempo junto al elemento para el que se aplica la información sobre herramientas, mientras que otros crean una etiqueta "div" dinámica, que aparece sobre la marcha mientras se coloca el cursor sobre el elemento.
Para nuestra demostración, consideremos la forma de implementación de la información sobre herramientas "jQuery Tools Tooltip".
Aquí, en la URL: http://demo.guru99.com/test/tooltip.html, puede ver la demostración en la que, al pasar el mouse sobre "Descargar ahora", obtenemos una información sobre herramientas avanzada con una imagen, un fondo de llamada, una tabla y un enlace dentro de él en el que se puede hacer clic.
Si observa la fuente a continuación, puede ver que la etiqueta div que representa la información sobre herramientas siempre está presente junto a la etiqueta del enlace "Descargar ahora". Pero, el código dentro de la etiqueta de secuencia de comandos a continuación controla cuándo debe aparecer.
Intentemos verificar solo el texto del enlace en la información sobre herramientas para nuestra demostración aquí.
Primero encontraremos el WebElement correspondiente al "Descargar ahora". Luego, usando la API de interacciones, nos moveremos al elemento (mouse-hover). A continuación, encontraremos el WebElement que corresponde al enlace dentro de la información sobre herramientas que se muestra y lo verificaremos con el texto esperado.
Aqui esta el codigo
import org.openqa.selenium.interactions.Action;importar org.openqa.selenium.interactions.Actions;import org.openqa.selenium.By;importar org.openqa.selenium.WebDriver;importar org.openqa.selenium.chrome.ChromeDriver;importar org.openqa.selenium. *;public class JqueryToolTip {public static void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/tooltip.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Controlador WebDriver = nuevo ChromeDriver ();StringpectedTooltip = "Novedades de 3.2";driver.get (baseUrl);WebElement download = driver.findElement (By.xpath (".//*[@ id = 'download_now']"));Generador de acciones = nuevas acciones (controlador);builder.clickAndHold (). moveToElement (descargar);builder.moveToElement (descargar) .build (). perform ();WebElement toolTipElement = driver.findElement (By.xpath (".//*[@ class = 'box'] / div / a"));String actualTooltip = toolTipElement.getText ();System.out.println ("Título real de la información sobre herramientas" + información actual sobre herramientas);if (actualTooltip.equals (esperabaTooltip)) {System.out.println ("Caso de prueba aprobado");}driver.close ();}}
Explicación del código
- Busque el WebElement que corresponda al elemento "descargar ahora" sobre el que pasaremos el mouse.
- Con la API de interacciones, coloque el mouse sobre "Descargar ahora".
- Suponiendo que se muestra la información sobre herramientas, busque el WebElement que corresponda al enlace dentro de la información sobre herramientas, es decir, la etiqueta "a".
- Verifique el texto de información sobre herramientas del enlace recuperado usando getText () con un valor esperado que hayamos almacenado en "pectedToolTip "
Resumen:
En este tutorial, ha aprendido a acceder a la información sobre herramientas mediante el controlador web de Selenium.
- La información sobre herramientas se implementa de diferentes maneras:
- La implementación básica se basa en el atributo "título" de HTML. getAttribute (title) obtiene el valor de la información sobre herramientas.
- Otras implementaciones de información sobre herramientas como JQuery, la información sobre herramientas CSS requieren la API de interacciones para crear un efecto de desplazamiento del mouse
- API de interacciones de usuario avanzadas
- moveToElement (elemento) de la clase Actions se usa para colocar el mouse sobre un elemento.
- El método Build () de la clase Actions construye la secuencia de acciones del usuario en un objeto Action.
- La clase Perform () of Action ejecuta toda la secuencia de acciones del usuario a la vez.
- Para verificar una información sobre herramientas, primero debemos colocar el mouse sobre el elemento, luego encontrar el elemento que corresponde a la información sobre herramientas y obtener su texto u otros valores para verificar con los valores esperados.