Selenium Tutorial de C# con ejemplo de NUnit

Selenium Resumen

Selenium es una web de código abierto Pruebas de automatización Herramienta que admite varios navegadores y sistemas operativos. Permite a los evaluadores utilizar varios 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 JavaC# permite a los desarrolladores crear aplicaciones utilizando Visual Studio en la plataforma .Net. Las siguientes son las características clave de C#.

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

Sintaxis básica de C#

Un programa en C# debe contener las siguientes 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 una muestra Selenium Programa de ejemplo 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 lo anterior Selenium El ejemplo de C# es una colección de varias 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.

Selenium con configuración de C#

Cómo configurar Visual Studio con Selenium controlador web:

Ahora en esto Selenium Tutorial de C#, aprendamos el proceso paso a paso para configurar Visual Studio con Selenium controlador web:

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 que se muestra en la pestaña Comunidad de Visual Studio

Configurar Visual Studio con Selenium Controlador web

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

Configurar Visual Studio con Selenium Controlador web

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

Configurar Visual Studio con Selenium WebDrive

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

Configurar Visual Studio con Selenium WebDrive

Paso 4) En la siguiente pantalla,

Seleccione las casillas de verificación para

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

Haga clic en 'Instalar'.

Configurar Visual Studio con Selenium 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.

Configurar Visual Studio con Selenium WebDrive

Paso 5) Aparecerá la ventana emergente que aparece a continuación. Haga clic en el botón "Reiniciar".

Configurar Visual Studio con Selenium WebDrive

Paso 6) Una vez que se reinicie la máquina, busque “Visual Studio” en el menú de inicio y haga clic en el resultado de la búsqueda. Aparecerá la siguiente ventana emergente. Haga clic en el enlace “Ahora no, tal vez más tarde” si no tiene una cuenta existente.

Configurar Visual Studio con Selenium WebDrive

Paso 7) En la siguiente pantalla,

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

Configurar Visual Studio con Selenium WebDrive

Paso 8) Aparecerá la pantalla 'Comenzar' de Visual Studio.

Configurar Visual Studio con Selenium WebDrive

Cree 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

Configurar Visual Studio con Selenium controlador web:

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

Configurar Visual Studio con Selenium Controlador web

Paso 2) En la siguiente pantalla

  1. Busque Selenium en la pantalla resultante
  2. Seleccione el primer resultado de búsqueda
  3. Marque la casilla de verificación del proyecto
  4. Haga clic en 'Instalar'

Configurar Visual Studio con Selenium Controlador web

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

Configurar Visual Studio con Selenium Controlador web

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

Configurar Visual Studio con Selenium Controlador web

Marco NUnit: descripción general

NUnidad es la Examen de la unidad marco compatible con Visual Studio y Selenium Controlador web. 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 usarlo.

Pasos para instalar NUnit Framework

Ahora en esto Selenium Con el tutorial de 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 siguientes funcionan solo en equipos de 32 bits. En el caso de equipos de 64 bits, debe descargar el "Adaptador de prueba NUnit3" siguiendo 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á el siguiente mensaje:

Descargar el adaptador de prueba NUnit

Selenium y marco NUnit

La integración de Selenium con el marco de trabajo NUnit permite que el evaluador pueda diferenciar entre varias clases de prueba. NUnit también permite que los evaluadores utilicen 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.

A continuación los pasos en este Selenium Se necesita un tutorial del marco 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

Crear 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

Crear una clase de prueba NUnit en Selenium

Paso 3) Aparecerá la siguiente pantalla.

Crear una clase de prueba NUnit en Selenium

Paso 4) Agregue el siguiente 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 de 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'

Crear 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

Crear 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".

Crear 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

Crear 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

Crear 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.

Crear una clase de prueba NUnit en Selenium

Selenium Comandos de WebDriver en C#

C# utiliza la interfaz 'IWebDriver' para las interacciones con el navegador. Las siguientes son las categorías de comandos disponibles con Selenium C ª#.

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

Ahora en el Selenium Tutorial de C Sharp, estudiemos el Selenium Comandos de WebDriver uno por uno

Comandos del navegador:

A continuación se muestra 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. Se representan mediante etiquetas HTML. Todos los botones, cuadros de texto, enlaces, imágenes, tablas y marcos se incluyen en Webelements. OperaLas interacciones con 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 elemento. Xpath de Webelement.

La siguiente es 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, este debe estar visible en la página web. Este comando también se utiliza para operaciones con casillas de verificación y botones de opció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 de los cuadros de texto.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
element.Clear();
Comando enviar claves Este comando se utiliza para ingresar un valor en cuadros de texto. El valor que se 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 según 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 un elemento web en particular está seleccionado. Este comando se utiliza para casillas de verificación, botones de opción y operaciones de selección.
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 utilizando la clase SelectElement.

Las siguientes son las distintas 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. Introduzca datos en el cuadro de texto del correo electrónico
  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. Introduzca datos en el cuadro de texto del correo electrónico
  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 SAP enlace
  3. Introduzca datos en los cuadros de texto de nombre y correo electrónico
  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");
                        
        }
    }
}

Resum

  • Para usar Selenium Para utilizar WebDriver con C# es necesario instalar Visual Studio.
  • NUnit es el marco de pruebas unitarias compatible con Visual Studio y Selenium controlador web
  • Necesitamos instalar NUnit Framework y NUnit Test Adapter en Visual Studio para poder usarlo.
  • 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.
  • Selenium Los comandos de WebDriver se pueden clasificar en comandos del navegador, comandos de elementos web y comandos desplegables.