Web Browser Automation – ¿Ya sabes cómo usar Selenium Web Driver?

Si luego de leer al post anterior te quedaron dudas de como puedes usar Selenium Web Driver te recomiendo que leas este post.
Selenium Logo
Selenium Web Driver

Escenario

El objetivo es automatizar esta página que muestra los tipos de cambio en dólares por mes, la idea es que este resultado se envié a una cuenta de correo electrónico y capturar una imagen como evidencia de la prueba.

Web tipo de cambio
Web tipo de cambio
Empecemos a desarrollar

Primero instalemos el paquete del Selenium Web Driver en un proyecto del tipo consola.

PM> Install-Package Selenium.WebDriver

Ahora instalamos el soporte para elementos UI:

PM> Install-Package Selenium.Support

Abrimos la clase Program.cs y agregamos los siguientes espacios de nombre:

using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Support.UI;

Creamos la instancia del Driver para el navegador FireFox:

var binary = 
      new FirefoxBinary(@"C:\Program Files (x86)\Mozilla Firefox\firefox.exe");
var profile = new FirefoxProfile();
var driver = new FirefoxDriver(binary, profile);

Nota: Si se instaló FireFox en la ruta por defecto no es necesario que se especifique la ruta del ejecutable.

var driver = new FirefoxDriver();

Ahora le indicamos al driver que navegue a la siguiente página:

driver.Navigate().GoToUrl("http://www.sunat.gob.pe/cl-at-ittipcam/tcS01Alias");

Seleccionamos el mes de diciembre:

var meses = driver.FindElementByName("mes");
var opcionMeses = new SelectElement(meses);
opcionMeses.SelectByValue("12");

Seleccionamos el año 2014:

var anos = driver.FindElementByName("anho");
var opcionAnos = new SelectElement(anos);
opcionAnos.SelectByValue("2014");

Hacemos clic en el botón Consultar:

var consultar = driver.FindElementByName("B1");
consultar.Click();

Capturamos la pantalla como evidencia:

var nombreArchivoEvidencia = 
    string.Format("{0}.png", DateTime.Now.ToString("yyyyMMddhhmmss"));
driver.GetScreenshot().SaveAsFile(nombreArchivoEvidencia, ImageFormat.Png);

Ingresamos la dirección de correo:

var correo = driver.FindElementById("email");
correo.SendKeys("berczeck69@gmail.com");

Hacemos clic en el botón Enviar:

var enviar = driver.FindElementByPartialLinkText("Enviar Correo");
enviar.Click();

Regresamos una página atrás:

driver.Navigate().Back();

Hacemos clic en el botón Descargar:

var descargar = driver.FindElementByLinkText("Descargar");
descargar.Click();

Para terminar cerramos el navegador:

driver.Close();

A continuación les dejo un vídeo con el resultado de la automatización:

Para descargar el código haz clic acá.

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 :).
Conclusión

Esta librería nos hará la vida más fácil en actividades comunes como automatizar páginas web, hacer pruebas de aceptación (ATDD) y reducir tiempos en procesos rutinarios. Selenium Web Driver cuenta con una API enriquecida que nos facilita la tarea de  manipular objetos en el navegador de una manera sencilla usando c#.

Referencias:
Metal Tip:

Este artículo lo escribí escuchando la canción Iron Will de la banda Paragon de Alemania, les comparto el enlace.

Happy coding and Stay Heavy lml
Anuncios

2 comentarios en “Web Browser Automation – ¿Ya sabes cómo usar 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