Selenium Tutorial de C#: Framework NUnit con ejemplo

โšก Resumen inteligente

Selenium WebDriver controla los navegadores desde C# a travรฉs de la interfaz IWebDriver, mientras que NUnit proporciona los atributos de prueba, las aserciones y los informes del Explorador de pruebas que convierten esos pasos del navegador en pruebas automatizadas repetibles.

  • ๐Ÿ”˜ Cadena de herramientas: Visual Studio mรกs el Selenium WebDriver, NUnit y Adaptador de prueba NUnit NuGet .
  • โ˜‘๏ธ Configuraciรณn del proyecto: El tipo de salida debe ser Biblioteca de clases, no Aplicaciรณn de consola, o la compilaciรณn fallarรก.
  • โœ… Atributos de NUnit: SetUp abre el navegador, Test realiza las acciones y TearDown lo cierra.
  • ๐Ÿงช Grupos de comandos: comandos del navegador, comandos de WebElement y comandos de menรบ desplegable a travรฉs de SelectElement.
  • ๐Ÿ› ๏ธ Localizadores: FindElement acepta estrategias de selecciรณn XPath y CSS para cada interacciรณn con un elemento.
  • โšก Ejecuciรณn: Test Explorer ejecuta la clase e informa si cada resultado fue aprobado o reprobado.

Selenium Automatizaciรณn de C# con el framework de pruebas 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#, PythonRuby, PHP y Perl para codificar pruebas automatizadas. Si eres nuevo en la herramienta, comienza con la Selenium tutoriales y conectar WebDriver versus Selenium Comparaciรณn RC.

Selenium El navegador proporciona el control; el lenguaje con el que lo manejas proporciona la estructura.

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

Antes de cablear Selenium En este sentido, ayuda a reconocer la estructura de un programa C# simple.

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 en 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 instrucciรณn es la sintaxis de C# utilizada para imprimir una instrucciรณn en la consola. WriteLine es un mรฉtodo de la Console clase. Tenga en cuenta que el punto de entrada estรก escrito Main con una M mayรบscula en C# real; la minรบscula main En el ejemplo anterior no se reconocerรก como punto de entrada.

Una vez clara la sintaxis, el siguiente paso es instalar las herramientas necesarias para compilar y ejecutar esas pruebas.

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) Navegue a la pestaรฑa 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

Pรกgina de descargas de Visual Studio con el botรณn de descarga gratuita de la ediciรณn Community.

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

El instalador de Visual Studio solicita permisos de administrador.

Paso 3) Aparecerรก la siguiente ventana emergente. Haga clic en el botรณn 'Continuar'.

Ventana emergente de bienvenida del instalador de Visual Studio con el botรณn Continuar

Los archivos se descargarรกn como se muestra en la ventana emergente a continuaciรณn.

El instalador de Visual Studio estรก descargando los archivos de componentes.

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

Pantalla de carga de trabajo de Visual Studio con Universal Windows Plataforma y desarrollo de escritorio .NET

Espere a que se complete la instalaciรณn de cada componente. Los archivos tienen un tamaรฑo de 16 GB y llevarรกn tiempo.

Barra de progreso del instalador de Visual Studio para cada componente seleccionado.

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

El instalador de Visual Studio solicita reiniciar el equipo.

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.

Ventana emergente de inicio de sesiรณn de Visual Studio con el enlace "Ahora no, quizรกs mรกs tarde"

Paso 7) En la siguiente pantalla,

  • Seleccione el tema de color de su agrado
  • Haz clic en el botรณn "Iniciar Visual Studio".

Pantalla de inicio de Visual Studio para elegir un tema de color

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

Pantalla de inicio de Visual Studio una vez finalizada la instalaciรณn.

Cree un nuevo proyecto en Visual Studio:

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

Menรบ Archivo de Visual Studio con Nuevo y Proyecto seleccionados.

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

Cuadro de diรกlogo Nuevo proyecto con aplicaciรณn de consola de Visual C# y el proyecto llamado Guru99

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

Editor de Visual Studio que muestra el reciรฉn creado GuruProyecto de consola 99

Configurar Visual Studio con Selenium controlador web:

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

Ruta del menรบ Herramientas a NuGet Administrador de paquetes y gestiรณn de NuGet Paquetes de soluciรณn

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'

NuGet gestor de paquetes con el Selenium Resultado de bรบsqueda y casilla de verificaciรณn del proyecto marcada

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

NuGet ventana emergente de confirmaciรณn antes de la Selenium El paquete estรก instalado

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

NuGet salida confirmando Selenium WebDriver se instalรณ correctamente

Selenium Ahora puede abrir un navegador, pero aรบn no puede informar si una prueba se ha superado. Esa es la funciรณn de un marco de pruebas unitarias.

Marco NUnit: descripciรณn general

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

El menรบ Herramientas se ha vuelto a abrir en NuGet Gestor de paquetes para la instalaciรณn de 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

NuGet Administrador de paquetes con el resultado de bรบsqueda de NUnit seleccionado para la instalaciรณn.

Paso 3) Aparecerรก la siguiente ventana emergente. Haga clic en el botรณn "Aceptar".

NuGet Ventana emergente de confirmaciรณn antes de que se instale el framework NUnit.

Paso 4) El siguiente mensaje aparecerรก una vez que se complete la instalaciรณn.

NuGet Mensaje que confirma que la instalaciรณn del framework NUnit ha finalizado.

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.

Paquetes actuales: un proyecto moderno instala Adaptador de pruebas NUnit3 Junto con Microsoft.NET.Test.Sdky los mayores Adaptador de pruebas NUnit El paquete ya no recibe mantenimiento. En .NET (Core) todo el proyecto se puede generar con dotnet new nunit, que aรฑade los tres paquetes por ti.

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

NuGet El gestor de paquetes busca NUnitTestAdapter con el proyecto seleccionado.

Paso 2) Haga clic en Aceptar en la ventana emergente de confirmaciรณn. Una vez finalizada la instalaciรณn, verรก el siguiente mensaje:

NuGet Mensaje que confirma que la instalaciรณn del adaptador de pruebas NUnit ha finalizado.

Ambas partes estรกn instaladas, por lo que el siguiente paso es unirlas en una รบnica clase de prueba.

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 mediante la creaciรณn de una clase de prueba NUnit y la ejecuciรณn de la clase de prueba utilizando el framework NUnit. Java El equivalente de este patrรณn se cubre en el JUnit Tutorial del marco de trabajoy se analiza junto con la alternativa .NET a NUnit dentro de Visual Studio. TestNG por la Selenium.

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 con el botรณn derecho en el proyecto > Agregar > Clase

Menรบ contextual del Explorador de soluciones con Agregar y Clase seleccionados.

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

El cuadro de diรกlogo Agregar nuevo elemento se utiliza para nombrar la nueva clase de prueba de NUnit.

Paso 3) Aparecerรก la siguiente pantalla.

Archivo de clase C# vacรญo creado en el editor de Visual Studio

Paso 4) Agregue el siguiente cรณdigo a la clase creada. Tenga en cuenta que debe especificar la ubicaciรณn del archivo 'chromedriver.exe' durante la inicializaciรณn del controlador de Chrome. Selenium 4.6 y posteriores Selenium Manager , que resuelve automรกticamente el controlador coincidente, por lo que new ChromeDriver() La forma actual es sin argumento de ruta; la ruta que aparece a continuaciรณn se mantiene porque coincide con las capturas de pantalla.

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'

Menรบ de compilaciรณn con la opciรณn "Compilar soluciรณn" seleccionada en Visual Studio.

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

Informe de error de compilaciรณn: no se encontrรณ un mรฉtodo main estรกtico adecuado para un punto de entrada.

Para solucionar esto, vaya a Proyecto > Propiedades y cambie el Tipo de salida a โ€œBiblioteca de clasesโ€. El valor predeterminado es โ€œAplicaciรณn de consolaโ€.

Propiedades del proyecto con tipo de salida cambiado a Biblioteca de clases

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

Ruta del menรบ de prueba a Windows y Explorador de pruebas

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

El Explorador de pruebas muestra las pruebas disponibles con la opciรณn Ejecutar pruebas seleccionadas.

Paso 7) Selenium debe abrir el navegador con especificado URL y cierre el navegador. El estado del caso de prueba cambiarรก a 'Aprobado' en la ventana del Explorador de pruebas.

El Explorador de pruebas muestra el resultado de la prueba NUnit marcado como superada.

Una prueba superada demuestra que la fontanerรญa funciona. A continuaciรณn, se muestra el vocabulario que utilizarรกs para redactar las pruebas.

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 esto Selenium Tutorial de C#, estudiemos el Selenium Los comandos de WebDriver uno por uno. El Java En este caso se muestran contrapartes. primer script de WebDriver recorrido.

Los comandos que aparecen a continuaciรณn siguen siendo los actuales. IWebDriver superficie en Selenium 4, por lo que la sintaxis se mantiene sin cambios.

Comandos del navegador:

A continuaciรณn se muestra una lista de comandos del navegador disponibles en C# con Selenium.

Nombre del comando Mareas Ideales para Lecciones Sintaxis
Comando URL Este comando se utiliza para abrir un archivo especรญfico. URL 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()

Los comandos del navegador actรบan sobre la ventana; el siguiente grupo actรบa sobre lo que hay dentro de ella.

Comandos de elementos web

Un WebElement representa cualquier elemento en una pรกgina web. Se representan mediante etiquetas HTML. Botones, cuadros de texto, enlaces, imรกgenes, tablas y marcos son ejemplos de WebElements. OperaLas acciones sobre esos elementos se activan a travรฉs de la IWebElement interfaz. Para interactuar con un WebElement, primero encontrar el elemento en la pรกgina y luego realizar una operaciรณn sobre ella. Las estrategias disponibles se tratan en localizadores en SeleniumLas herramientas para desarrolladores del navegador, o los complementos heredados Firebug y Firepath que las capturas de pantalla a continuaciรณn utilizan para identificar el XPath de un elemento web.

A continuaciรณn se muestran los comandos WebElement disponibles en C#.

Nombre del comando Mareas Ideales para Lecciones 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 se ha seleccionado un elemento web especรญfico. Se aplica a 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;

Resultadoโ€“ Si el color del elemento es rojo, la salida serรญa rgba(255,0,0,1)

Nota sobre los ejemplos anteriores: La tabla reproduce la sintaxis original. En la actualidad Selenium .NET los miembros estรกn en formato PascalCase โ€” element.Submit() y element.GetCssValue("color") - Y GetCssValue Toma como argumento el nombre de la propiedad CSS.

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 Mareas Ideales para Lecciones 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 de selecciรณn mรบltiple; un menรบ desplegable de selecciรณn mรบltiple permite al usuario elegir mรกs de una opciรณn 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");

Los cuatro scripts a continuaciรณn hacen que los comandos anteriores funcionen contra el Guru99 sitios de demostraciรณn. Cada uno es una clase de prueba NUnit completa y ejecutable.

Code Muestras

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

Escenario de prueba:

  1. Ir a la demostraciรณn Guru99 pรกginas web โ€“ 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 pestaรฑa GuruPรกgina de demostraciรณn 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 pestaรฑa GuruPรกgina de demostraciรณn 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 pestaรฑa GuruPรกgina de demostraciรณn 99 โ€“ https://demo.guru99.com/test/guru99home/
  2. Haga clic en SAP este 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");
                        
        }
    }
}

Preguntas Frecuentes

Usar Selenium.WebDriver 4.x con NUnit 3.14 o NUnit 4, mรกs NUnit3TestAdapter y Microsoft.NET.Test.Sdk. NUnit 4 estรก dirigido a .NET Framework 4.6.2 o .NET 6 y versiones posteriores, asรญ que compruebe la versiรณn de destino de su proyecto antes de actualizar desde los paquetes mostrados anteriormente.

No. Selenium 4.6 introducido Selenium El administrador descarga y compara el controlador del navegador en tiempo de ejecuciรณn. Pasar una carpeta de controladores al constructor de ChromeDriver sigue funcionando, pero solo es necesario cuando se debe especificar una compilaciรณn de controlador concreta.

Una espera implรญcita aplica un รบnico tiempo de espera a cada bรบsqueda de elemento durante la vida รบtil de la instancia de IWebDriver. Una espera explรญcita se dirige a un elemento y una condiciรณn especรญficos, como ser clicable o visible, por lo que falla mรกs rรกpidamente y describe la intenciรณn con mayor precisiรณn.

Sรญ. Marca el ensamblado como Parallelizable y NUnit ejecutarรก las fixtures simultรกneamente. Cada prueba debe tener su propia instancia de IWebDriver, asรญ que crea el controlador en SetUp en lugar de compartir un campo estรกtico; de lo contrario, las pruebas paralelas chocarรกn en el mismo navegador.

NUnit y MSTest utilizan atributos y agrupan pruebas con TestFixture o TestClass. xUnit no necesita atributo de clase y fue diseรฑado en torno al paralelismo. Los tres se ejecutan en Test Explorer; NUnit sigue siendo la opciรณn mรกs comรบn para Selenium Trabajo en C#.

Las herramientas de IA proponen localizadores a partir de una instantรกnea de la pรกgina, reparan selectores que se rompieron tras un cambio en la interfaz de usuario y convierten un caso de prueba escrito en un mรฉtodo NUnit preliminar. Trate cada sugerencia como un borrador y revise las aserciones antes de confirmar los cambios.

Sรญ. A partir de un comentario que describe el escenario, Copilot genera los miembros SetUp, Test y TearDown y sugiere llamadas a FindElement desde el cรณdigo circundante. Verifique los localizadores con la pรกgina en vivo, ya que los selectores generados se infieren en lugar de inspeccionarse.

Selenium Cuenta con la mayor compatibilidad con redes, la nube y diversos idiomas, ademรกs de un amplio entorno de pruebas, lo que garantiza la empleabilidad de la habilidad. Playwright ofrece una ejecuciรณn mรกs rรกpida y una funciรณn de espera integrada. Muchos equipos .NET utilizan ambas tecnologรญas, compartiendo el mismo ejecutor NUnit y los mismos informes.

Resumir este post con: