Tutorial de Selenium C# con ejemplo de NUnit

Resumen de selenio

Selenium es una web de código abierto. Pruebas de automatización herramienta que admite múltiples navegadores y múltiples sistemas operativos. Permite a los evaluadores utilizar múltiples lenguajes de programación como Java, C#, Python, .Net, Ruby, PHP y Perl para codificar pruebas automatizadas.

Descripción general de C#

C# es un lenguaje de programación orientado a objetos derivado de C++ y Java. C# permite a los desarrolladores crear aplicaciones usando Visual Studio en la plataforma .Net. el siguientewing son las características claves de C#.

  1. Es un lenguaje de programación orientado a objetos.
  2. Admite el desarrollo de consola, windows y aplicaciones basadas en web
  3. Proporciona funciones como encapsulación, herencia y polimorfismo.

Sintaxis básica de C#

Un programa en C# debe contener lo siguientewing (secciones)

  1. Declaración de espacio de nombres
  2. Clases
  3. Atributos y métodos de clase
  4. Método principal
  5. Declaraciones de programas

Ejemplo-

A continuación se muestra un programa de ejemplo de Selenium C# para imprimir el texto "Guru99" en la consola del sistema.

using System;
namespace FirstProgram {
class DemoPrint {
static void main(){
    Console.WriteLine("Guru99");
	}
  }
}

Explicación:

  • Un espacio de nombres en el ejemplo anterior de Selenium C# es una colección de múltiples clases. Cada espacio de nombres debe declararse utilizando la palabra clave "usando".
  • La primera declaración del código incluye el espacio de nombres "Sistema" en nuestro programa. El espacio de nombres del sistema define las clases y eventos fundamentales utilizados en C#. El espacio de nombres que se utilizará depende de los requisitos del programa.
  • La segunda declaración declara un espacio de nombres "FirstProgram" para la clase "DemoPrint". Un archivo C# puede contener varias clases dentro del mismo espacio de nombres.
  • La tercera declaración incluye la declaración de clase. Una clase puede contener múltiples atributos y múltiples métodos.
  • La cuarta declaración incluye una declaración del método Main. El método principal es el punto de entrada de ejecución de cada clase.
  • La última declaración es la sintaxis de C# utilizada para imprimir una declaración en la consola. WriteLine es un método de la clase 'Console.

Selenio con configuración de C#

Como instalar Visual Studio con Selenio WebDriver:

Ahora, en este tutorial de Selenium C#, aprendamos el proceso paso a paso para configurar Visual Studio con Selenio WebDriver:

Visual Studio es un entorno de desarrollo integrado (IDE) que utilizan los desarrolladores para crear aplicaciones en múltiples plataformas, como Windows, Android, iOS y aplicaciones basadas en la nube.

Paso 1) Navegar a la URL

https://visualstudio.microsoft.com/downloads/ y haga clic en el 'Descarga gratis' botón mostrado en Visual Studio Pestaña Comunidad

Instalar Visual Studio Con Selenio WebDriver

Paso 2) Abra el exe descargado. Haga clic en "Sí" si se le solicitan derechos de administrador.

Instalar Visual Studio Con Selenio WebDriver

Paso 3) Aparecerá la siguiente ventana emergente. Haga clic en el botón 'Continuar'.

Instalar Visual Studio Con Selenio WebDrive

Los archivos se descargarán como se muestra en la ventana emergente a continuación.

Instalar Visual Studio Con Selenio WebDrive

Paso 4) En la siguiente pantalla,

Seleccione el chequeboxes para

  • Universal Windows Desarrollo de plataforma
  • Desarrollo de escritorio .Net

Haga clic en 'Instalar'.

Instalar Visual Studio Con Selenio WebDrive

Espere a que se complete la instalación de cada componente. Los archivos tienen un tamaño de 16 GB y llevarán tiempo.

Instalar Visual Studio Con Selenio WebDrive

Paso 5) Se mostrará la siguiente ventana emergente. Haga clic en el botón "Reiniciar".

Instalar Visual Studio Con Selenio WebDrive

Paso 6) Una vez reiniciada la máquina, busque “Visual Studio”en el menú inicio y haga clic en el resultado de la búsqueda. el siguientewing Aparecerá una ventana emergente. Haga clic en “Ahora no, tal vez later"Enlace si no tiene una cuenta existente.

Instalar Visual Studio Con Selenio WebDrive

Paso 7) En la siguiente pantalla,

  • Seleccione el tema de color de su agrado
  • Haga clic en el botón “Iniciar Visual Studio'"

Instalar Visual Studio Con Selenio WebDrive

Paso 8) Visual Studio Aparecerá la pantalla "Comenzar".

Instalar Visual Studio Con Selenio WebDrive

Crea un nuevo proyecto en Visual Studio:

Paso 1) En el menú Archivo, haga clic en Nuevo > Proyecto

Crear un nuevo proyecto en Visual Studio

Paso 2) En la siguiente pantalla,

  1. Seleccione la opción 'Visual C#'
  2. Haga clic en Aplicación de consola (.Net Framework)
  3. Ingrese el nombre como "Guru99"
  4. haga clic en Aceptar

Crear un nuevo proyecto en Visual Studio

Paso 3) La siguiente pantalla se mostrará una vez que el proyecto se haya creado correctamente.

Crear un nuevo proyecto en Visual Studio

Preparar Visual Studio con Selenio WebDriver:

Paso 1) Vaya a Herramientas -> NuGet Administrador de paquetes -> Administrar NuGet Paquetes de solución

Instalar Visual Studio Con Selenio WebDriver

Paso 2) En la siguiente pantalla

  1. Busque Selenio en la pantalla resultante.
  2. Seleccione el primer resultado de búsqueda
  3. Consulta el cheque del proyecto.box
  4. Haga clic en 'Instalar'

Instalar Visual Studio Con Selenio WebDriver

Paso 3) Haga clic en el botón "Aceptar" en la pantalla emergente.

Instalar Visual Studio Con Selenio WebDriver

Paso 4) El siguiente mensaje se mostrará una vez que el paquete se haya instalado correctamente.

Instalar Visual Studio Con Selenio WebDriver

Marco NUnit: descripción general

NUnidad es la Examen de la unidad marco apoyado por Visual Studio y Selenio WebDriver. NUnit es el marco de pruebas unitarias más utilizado para aplicaciones .Net. NUnit presenta los resultados de las pruebas en un formato legible y permite al evaluador depurar las pruebas automatizadas.

Necesitamos instalar NUnit Framework y NUnit Test Adapter en Visual Studio para poder utilizarlo.

Pasos para instalar NUnit Framework

Ahora, en este tutorial de Selenium con C#, aprendamos el proceso para instalar el marco NUnit:

Paso 1) Vaya a Herramientas -> NuGet Administrador de paquetes -> Administrar NuGet Paquetes de solución

Instalar el marco NUnit

Paso 2) En la siguiente ventana

  1. Buscar NUnit
  2. Seleccione el resultado de la búsqueda
  3. Seleccionar proyecto
  4. Haga clic en Instalar

Instalar el marco NUnit

Paso 3) Aparecerá la siguiente ventana emergente. Haga clic en el botón "Aceptar".

Instalar el marco NUnit

Paso 4) El siguiente mensaje aparecerá una vez que se complete la instalación.

Instalar el marco NUnit

Pasos para descargar el adaptador de prueba NUnit

Ahora, en este tutorial de NUnit, cubriremos los pasos para descargar el Adaptador de prueba NUnit:

Tenga en cuenta que los pasos a continuación funcionan solo para máquinas de 32 bits. Para máquinas de 64 bits, debe descargar el 'Adaptador de prueba NUnit3' siguiendowing el mismo proceso que se menciona a continuación.

Paso 1) Vaya a Herramientas ->NuGet Administrador de paquetes -> Administrar NuGet Paquetes para solución. En esa pantalla,

  1. Buscar NUnitTestAdapter
  2. Haga clic en Resultado de búsqueda
  3. Seleccionar proyecto
  4. Haga clic en Instalar

Descargar el adaptador de prueba NUnit

Paso 2) Haga clic en Aceptar en la ventana emergente de confirmación. Una vez finalizada la instalación, verá lo siguiente.wing mensaje-

Descargar el adaptador de prueba NUnit

Marco de selenio y NUnit

La integración de selenio con el marco NUnit permite al evaluador diferenciar entre varias clases de prueba. NUnit también permite a los evaluadores utilizar anotaciones como SetUp, Test y TearDown para realizar acciones antes y después de ejecutar la prueba.

El marco NUnit se puede integrar con Selenium creando una clase de prueba NUnit y ejecutando la clase de prueba usando el marco NUnit.

Se necesitan los pasos siguientes en este tutorial del marco Selenium C# para crear y ejecutar una clase de prueba utilizando el marco NUnit.

Pasos para crear una clase de prueba NUnit en Selenium:

Paso 1) En el Explorador de soluciones, haga clic derecho en proyecto> Agregar> Clase

Cree una clase de prueba NUnit en Selenium

Paso 2) Aparecerá la ventana de creación de clases.

  1. Proporcionar un nombre a la clase.
  2. Haga clic en el botón Agregar

Cree una clase de prueba NUnit en Selenium

Paso 3) Aparecerá la siguiente pantalla.

Cree una clase de prueba NUnit en Selenium

Paso 4) Agrega el siguientewing código a la clase creada. Tenga en cuenta que debe especificar la ubicación del archivo 'chromdriver.exe' durante la inicialización del controlador Chrome.

using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Firefox;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Guru99Demo
{
	class Guru99Demo						
    {
        IWebDriver driver;

        [SetUp]
		public void startBrowser()
        {
            driver = new ChromeDriver("D:\\3rdparty\\chrome");
        }

        [Test]
		public void test()
        {
            driver.Url = "http://www.google.co.in";
        }

        [TearDown]
		public void closeBrowser()
        {
            driver.Close();
        }

    }
}

Paso 4) Haga clic en 'Crear' -> 'Crear solución'

Cree una clase de prueba NUnit en Selenium

NOTA: Es posible que reciba un error como "No contiene un método 'principal' estático adecuado para un punto de entrada" cuando compila

Cree una clase de prueba NUnit en Selenium

Para resolver esto, vaya a Proyecto> Propiedades y cambie el Tipo de salida a "Biblioteca de clases". El valor predeterminado es "Aplicación de consola".

Cree una clase de prueba NUnit en Selenium

Paso 5) Una vez que la compilación sea exitosa, debemos abrir la ventana del Explorador de pruebas. Haga clic en Prueba -> Windows -> Explorador de pruebas

Cree una clase de prueba NUnit en Selenium

Paso 6) Se abre la ventana del Explorador de pruebas con la lista de pruebas disponibles. Haga clic derecho en Test Explorer y seleccione Ejecutar pruebas seleccionadas

Cree una clase de prueba NUnit en Selenium

Paso 7) Selenium debe abrir el navegador con la URL especificada y cerrarlo. El estado del caso de prueba se cambiará a "Aprobado" en la ventana del Explorador de pruebas.

Cree una clase de prueba NUnit en Selenium

Comandos de Selenium WebDriver en C#

C# utiliza la interfaz 'IWebDriver' para las interacciones del navegador. el siguientewing son la categoría de comandos disponibles con Selenium en C#.

  1. Comandos del navegador
  2. Comandos de elementos web
  3. Comandos desplegables

Ahora, en el tutorial de Selenium C Sharp, estudiemos los comandos de Selenium WebDriver uno por uno.

Comandos del navegador:

Following es una lista de comandos del navegador disponibles en C# con Selenium.

Nombre del comando Descripción Sintaxis
Comando URL Este comando se utiliza para abrir una URL específica en el navegador.
driver.Url = "https://www.guru99.com"
Comando de título Este comando se utiliza para recuperar el título de la página web que está actualmente abierta
String title = driver.Title
Comando de origen de página Este comando se utiliza para recuperar el código fuente de la página web que está actualmente abierta.
String pageSource = driver.PageSource
Cerrar comando Este comando se utiliza para cerrar la instancia del navegador abierta recientemente.
driver.Close();
Salir del comando Este comando se utiliza para cerrar todas las instancias abiertas del navegador.
driver.Quit();
Comando Atrás Este comando se utiliza para navegar a la página anterior del historial del navegador.
driver.Navigate().Back();
Comando de avance Este comando se utiliza para navegar a la siguiente página del historial del navegador.
driver.Navigate().Forward()
Actualizar comando Este comando se utiliza para realizar la actualización del navegador.
driver.Navigate().Refresh()

Comandos de elementos web

Un Webelement representa todos los elementos de una página web. Están representados por etiquetas HTML. Cada uno de los botones, texto.boxLos elementos, enlaces, imágenes, tablas y marcos se incluyen en elementos web. Las operaciones en elementos web se pueden activar mediante la interfaz IWebelement. Para interactuar con un elemento web, necesitamos encontrar el elemento en la página web y luego realizar operaciones en él. Se pueden utilizar herramientas como Firebug y Firepath para identificar el Xpath de Webelement.

El following son la lista de comandos de Webelement disponibles en C#.

Nombre del comando Descripción Sintaxis
Haga clic en el comando Este comando se utiliza para hacer clic en un elemento web. Para que se pueda hacer clic en el elemento, el elemento debe estar visible en la página web. Este comando se utiliza para comprobarbox y operaciones de botones de opción también.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));  element.Click();
Borrar comando Este comando se utiliza específicamente para borrar el contenido existente del texto.boxpor ejemplo.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
element.Clear();
Comando enviar claves Este comando se utiliza para ingresar un valor en el texto. boxes. El valor a ingresar debe pasarse como parámetro a
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
element.SendKeys("guru99");
Comando mostrado Este comando se utiliza para identificar si un elemento específico se muestra en la página web. Este comando devuelve un valor booleano; verdadero o falso dependiendo de la visibilidad del elemento web.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
Boolean status = element.Displayed;
Comando habilitado Este comando se utiliza para identificar si un elemento web en particular está habilitado en la página web. Este comando devuelve un valor booleano; verdadero o falso como resultado.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
Boolean status = element.Enabled;
Comando seleccionado Este comando se utiliza para identificar si se selecciona un elemento web en particular. Este comando se utiliza para comprobarboxes, botones de opción y operaciones seleccionadas.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
Boolean status = element.Selected;
Enviar comando: Este comando es similar al comando de clic. La diferencia radica en si el formulario HTML tiene un botón del tipo Enviar. Mientras que el comando de clic hace clic en cualquier botón, el comando de envío hace clic en los únicos botones con tipo enviar.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));  element.submit();
Comando de texto Este comando devuelve el texto interno de un elemento web. Este comando devuelve un valor de cadena como resultado.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
String text=element.Text;
Comando nombre de etiqueta Este comando devuelve la etiqueta HTML de un elemento web. Devuelve un valor de cadena como resultado.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));  String tagName = element.TagName;
Comando ObtenerCSSValue: Este método se utiliza para devolver el color de un elemento web en forma de cadena rgba (rojo, verde, azul y alfa).
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
String color = element.getCSSValue;

Salida– Si el color del elemento es rojo, la salida sería rgba(255,0,0,1)

Comandos desplegables:

Las operaciones desplegables en C# se pueden lograr usando la clase SelectElement.

El following son las diversas operaciones desplegables disponibles en C#.

Nombre del comando Descripción Sintaxis
Comando SeleccionarPorTexto Este comando selecciona una opción de un menú desplegable según el texto de la opción.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.SelectByText("Guru99");
Comando SeleccionarPorÍndice Este comando se utiliza para seleccionar una opción según su índice. El índice del menú desplegable comienza en 0.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.SelectByIndex("4");
Comando SeleccionarPorValor Este comando se utiliza para seleccionar una opción según su valor de opción.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.SelectByValue("Guru99");
Comando de opciones Este comando se utiliza para recuperar la lista de opciones que se muestran en un menú desplegable.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
List<IWebelement> options = select. Options;
int size = options.Count;
for(int i=0;i<options.size();i++)
{
String value = size.elementAt(i).Text;
Console.writeLine(value);
}

El código anterior imprime todas las opciones en la consola dentro de un menú desplegable.

Comando es múltiple Este comando se utiliza para identificar si un menú desplegable es un menú desplegable de selección múltiple; Un menú desplegable de selección múltiple permite al usuario seleccionar más de una opción en un menú desplegable a la vez. Este comando devuelve un valor booleano.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
Boolean status = select.IsMultiple();
Comando DeSeleccionar Todo Este comando se utiliza en menús desplegables de selección múltiple. Borra las opciones que ya han sido seleccionadas.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.DeSelectAll();
Comando DeSelectByIndex Este comando deselecciona un valor ya seleccionado usando su índice.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.DeSelectByIndex("4");
Comando DeSelectByValue Este comando deselecciona un valor ya seleccionado usando su valor.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.DeSelectByValue("Guru99");
Comando DeSelectByText Este comando deselecciona un valor ya seleccionado usando su texto.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.DeSelectByText("Guru99");

Ejemplos de código

Ejemplo 1: haga clic en un enlace usando XPATH Locator:

Escenario de prueba:

  1. Vaya a la página web Demo Guru99 – https://demo.guru99.com/test/guru99home/
  2. Maximiza la ventana
  3. Haga clic en el menú 'Pruebas'
  4. Cerrar el navegador
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Guru99Demo
{
	class CSS						
    {
        IWebDriver m_driver;

        [Test]
		public void cssDemo()
        {
            m_driver = new ChromeDriver("D:\\3rdparty\\chrome");
            m_driver.Url = "https://demo.guru99.com/test/guru99home/";
            m_driver.Manage().Window.Maximize();
            IWebelement link = m_driver.FindElement(By.XPath(".//*[@id='rt-header']//div[2]/div/ul/li[2]/a"));
            link.Click();
            m_driver.Close();
        }
    }
}

Ejemplo 2: ingresar datos en textoBox y haga clic en un botón usando el localizador XPATH:

Escenario de prueba:

  1. Navegue a la página de demostración de Guru 99 – https://demo.guru99.com/test/guru99home/
  2. Ingrese datos en email texto box
  3. Haga clic en el botón de registro
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Guru99Demo
{
	class CSS						
    {
        IWebDriver m_driver;

        [Test]
		public void cssDemo()
        {
            m_driver = new ChromeDriver("G:\\");
            m_driver.Url = "https://demo.guru99.com/test/guru99home/";
            m_driver.Manage().Window.Maximize();

             
			// Store locator values of email text box and sign up button				
            IWebElement emailTextBox = m_driver.FindElement(By.XPath(".//*[@id='philadelphia-field-email']"));
            IWebElement signUpButton = m_driver.FindElement(By.XPath(".//*[@id='philadelphia-field-submit']"));

            emailTextBox.SendKeys("test123@gmail.com");
            signUpButton.Click();
                        
        }
    }
}			

Ejemplo 3: ingresar datos en textoBox y haga clic en un botón usando el localizador CSS:

Escenario de prueba:

  1. Navegue a la página de demostración de Guru 99 – https://demo.guru99.com/test/guru99home/
  2. Ingrese datos en email texto box
  3. Haga clic en el botón de registro
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Guru99Demo
{
	class CSS						
    {
        IWebDriver m_driver;

        [Test]
		public void cssDemo()
        {
            m_driver = new ChromeDriver("G:\\");
            m_driver.Url = "https://demo.guru99.com/test/guru99home/";
            m_driver.Manage().Window.Maximize();

             
			// Store locator values of email text box and sign up button				
            IWebElement emailTextBox = m_driver.FindElement(By.CssSelector("input[id=philadelphia-field-email]"));
            IWebElement signUpButton = m_driver.FindElement(By.CssSelector("input[id=philadelphia-field-submit]"));

            emailTextBox.SendKeys("test123@gmail.com");
            signUpButton.Click();

             
        }
    }
}

Ejemplo 4: seleccione un valor en el menú desplegable:

Escenario de prueba:

  1. Navegue a la página de demostración de Guru 99 – https://demo.guru99.com/test/guru99home/
  2. Haga clic en el enlace de SAP
  3. Ingrese datos en nombre y email texto boxes
  4. Seleccione un valor del menú desplegable Curso
  5. Cerrar el navegador
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;


namespace Guru99Demo
{
	class TestSelect						
    {
        IWebDriver m_driver;

        [Test]
		public void selectDemo()
        {
            m_driver = new ChromeDriver("G:\\");
            m_driver.Url = "https://demo.guru99.com/test/guru99home/";
            m_driver.Manage().Window.Maximize();

            IWebElement course = m_driver.FindElement(By.XPath(".//*[@id='awf_field-91977689']"));

			var selectTest = new SelectElement(course);
			// Select a value from the dropdown				
            selectTest.SelectByValue("sap-abap");
                        
        }
    }
}

Resumen

  • Para utilizar Selenium WebDriver con C#, necesita instalar Visual Studio.
  • NUnit es el marco de pruebas unitarias respaldado por Visual Studio y Controlador web de selenio
  • Necesitamos instalar NUnit Framework y NUnit Test Adapter en Visual Studio para poder utilizarlo.
  • El marco NUnit se puede integrar con Selenium creando una clase de prueba NUnit y ejecutando la clase de prueba usando el marco NUnit.
  • NUnit también permite a los evaluadores utilizar anotaciones como SetUp, Test y TearDown para realizar acciones antes y después de ejecutar la prueba.
  • Los comandos de Selenium WebDriver se pueden clasificar en comandos del navegador, comandos de elementos web y comandos desplegables.