Web Browser Automation – ¿Sabes para qué sirve Selenium Web Driver?

Si alguna vez has preguntado ¿Qué herramienta puedo usar para automatizar una página web? te recomiendo que leas el siguiente post.
Selenium Logo
Selenium Web Driver

Nota: En este post veremos el uso y los comandos de Selenium Web Driver, ya en el siguiente veremos un ejemplo práctico.

Antes de hablar de Selenium Web Driver primero hablemos de la suite Selenium. Esto es lo que nos dice la documentación oficial:

Selenium automatiza navegadores. Eso es todo! Lo que se hace con ese poder es responsabilidad de usted. Sobre todo, sirve para automatizar aplicaciones web con propósitos de prueba, pero no se limita ciertamente sólo a eso. Las tareas aburridas de administración basadas en web pueden ser automatizadas también.

Por lo tanto miremos a Selenium como un conjunto de herramientas Open Source para automatizar aplicaciones web a través de muchas plataformas y navegadores; además, puede ser usado desde muchos lenguajes de programación o frameworks de pruebas. Entre sus herramientas más usadas tenemos las siguientes:

Selenium IDE

Está implementado como una extensión de Firefox que permite grabar, editar y depurar pruebas. Se pueden desarrollar scripts al crear una grabación y luego se pueden editar con sentencias y comandos para que la ejecución cumpla con el flujo requerido. Los scripts se generan en un lenguaje de scripting llamado Selanese especial para Selenium. Selanese trae un conjunto de comandos que ejecutan acciones sobre objetos en el navegador, como: hacer clic en un link, seleccionar un valor de una lista de opciones, verificar la presencia de una cadena, etc.

Selenium IDE
Selenium IDE
Selenium Web Driver

Fue diseñado para proveer un API más simple en comparación a su antecesor Selenium-RC; ahora es un API compacto orientado a objetos que permite automatizar aplicaciones web para verificar que trabajen como se espera. Su tarea empieza al recibir comandos enviados a través de un API cliente, luego los envía a un navegador y finalmente devuelve los resultados. Selenium Web Driver hace llamadas directas al navegador usando el soporte nativo de automatización de cada uno de ellos en comparación a Selenium-RC que inyectaba funciones javascript dentro del navegador. Actualmente Selenium provee un API para Java, C#, Ruby y Python.

Ahora usemos Selenium Web Driver

Nota: Este post fue escrito usando la versión 2.44 que puede ser descargada desde Nuget en este link.

Instanciar un driver:
FirefoxBinary binary = new FirefoxBinary(@"C:\Firefox\firefox.exe");
FirefoxProfile profile = new FirefoxProfile();
IWebDriver driver = new FirefoxDriver(binary, profile);
Navegar a otra pagina:
driver.Navigate().GoToUrl("http://www.google.com/");
Buscar por Id:
IWebElement element = driver.FindElementById("coolestWidgetEvah");
Buscar por Clase:
IWebElement element = driver.FindElementByClassName("cheese");
Buscar por Tag:
IWebElement element = driver.FindElementByTagName("input");
Buscar por Nombre:
IWebElement element = driver.FindElementByName("userName");
Buscar por selector CSS:
IWebElement element= driver.FindElementByCssSelector("#food span.ir");
Buscar por XPATH:
IWebElement element= driver.FindElementByXPath("//input[@id='user']");
Buscar por texto visible de un HyperLink:
IWebElement element = driver.FindElementByLinkText("enlace");
Buscar por texto visible parcial de un HyperLink:
IWebElement element = driver.FindElementByPartialLinkText("enlace");
Hacer clic:
IWebElement element = driver.FindElementById("confirmForm");
element.Click();
Escribir texto:
IWebElement element = driver.FindElementById("userName");
element.SendKeys("invalid");
Obtener atributos:
IWebElement element = driver.FindElementById("linkGoogle");
var url = element.GetAttributes("href");

NOTA: Se requieren pasos adicionales para usar los siguientes Drivers:  Internet Explorer, FireFox, Chrome, Opera, AndroidiOS.

En el siguiente post veremos un ejemplo práctico de como automatizar una pagina web.

Conclusión

Selenium Web Driver es una herramienta  Open Source que viene dentro de la suite de Selenium para automatizar pruebas o tareas diarias sobre aplicaciones web. La versión actual cuenta  con un API mejorada y simplificada para los lenguajes Java, C#, Ruby y Python. Esta API permite enviar comandos para controlar el navegador usando el mecanismo de automatización nativo que viene en cada uno sin el uso de javascript.

Si te gusto este post entonces por favor ayúdame a difundirlo y logremos que el conocimiento se expanda, para lograr esto dale me gusta, compártelo en tus redes sociales a tus amigos o suscríbete a mi canal RSS, Gracias :).
Referencias:
Metal Tip:

Este artículo lo escribí escuchando la canción Kill The King de la banda Rainbow de Inglaterra donde cantaba el gran vocalista Ronnie James Dio, les comparto el enlace.

Happy coding and Stay Heavy lml

Anuncios

2 comentarios en “Web Browser Automation – ¿Sabes para qué sirve Selenium Web Driver?

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s