Selenium Tutoriel C# avec exemple NUnit

Selenium Vue d'ensemble

Selenium est un site Web open source Tests d'automatisation outil qui prend en charge plusieurs navigateurs et plusieurs systèmes d'exploitation. Il permet aux testeurs d'utiliser plusieurs langages de programmation tels que Java, C#, Python, .Net, Ruby, PHP et Perl pour le codage de tests automatisés.

Présentation de C#

C# est un langage de programmation orienté objet dérivé de C++ ou Java. C# permet aux développeurs de créer des applications à l'aide de Visual Studio sur la plate-forme .Net. Voici les principales fonctionnalités de C#.

  1. C'est un langage de programmation orienté objet
  2. Il prend en charge le développement d'applications console, Windows et Web.
  3. Il fournit des fonctionnalités telles que l'encapsulation, l'héritage et le polymorphisme.

Syntaxe de base de C#

Un programme en C# doit contenir les sections suivantes

  1. Déclaration d'espace de noms
  2. Cours
  3. Attributs et méthodes de classe
  4. Méthode principale
  5. Énoncés de programme

Exemple-

Voici un exemple Selenium Exemple de programme C# pour imprimer le texte « Guru99 » sur la console système.

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

Explication:

  • Un espace de noms dans ce qui précède Selenium L'exemple C# est une collection de plusieurs classes. Chaque espace de noms doit être déclaré à l'aide du mot-clé 'using'.
  • La première instruction du code inclut l'espace de noms « Système » dans notre programme. L'espace de noms système définit les classes et événements fondamentaux utilisés en C#. L'espace de noms à utiliser dépend des exigences du programme.
  • La deuxième instruction déclare un espace de noms « FirstProgram » pour la classe « DemoPrint ». Le fichier AC# peut contenir plusieurs classes dans le même espace de noms.
  • La troisième instruction inclut la déclaration de classe. Une classe peut contenir plusieurs attributs et plusieurs méthodes.
  • La quatrième instruction inclut une déclaration de la méthode Main. La méthode main est le point d’entrée d’exécution de chaque classe.
  • La dernière instruction est la syntaxe C# utilisée pour imprimer une instruction sur la console. WriteLine est une méthode de la classe 'Console.

Selenium avec l'installation C#

Comment configurer Visual Studio avec Selenium Pilote Web :

Maintenant dans ce Selenium Tutoriel C#, apprenons le processus étape par étape pour configurer Visual Studio avec Selenium Pilote Web :

Visual Studio est un environnement de développement intégré (IDE) utilisé par les développeurs pour créer des applications sur plusieurs plates-formes telles que Windows, Android, iOS et applications basées sur le cloud.

Étape 1) Accédez à l'URL

https://visualstudio.microsoft.com/downloads/ et cliquez sur le 'Téléchargement Gratuit' bouton affiché sur l'onglet Communauté Visual Studio

Configurer Visual Studio avec Selenium pilote web

Étape 2) Ouvrez l'exe téléchargé. Cliquez sur « Oui » si les droits d'administrateur vous sont demandés.

Configurer Visual Studio avec Selenium pilote web

Étape 3) La fenêtre contextuelle ci-dessous apparaîtra. Cliquez sur le bouton « Continuer ».

Configurer Visual Studio avec Selenium WebDrive

Les fichiers seront téléchargés comme indiqué dans la fenêtre contextuelle ci-dessous.

Configurer Visual Studio avec Selenium WebDrive

Étape 4) Dans l'écran suivant,

Cochez les cases pour

  • Universel Windows Développement de plateforme
  • Développement de bureau .Net

Cliquez sur "Installer".

Configurer Visual Studio avec Selenium WebDrive

Attendez la fin de l'installation de chaque composant. Les fichiers font 16 Go et prendront du temps.

Configurer Visual Studio avec Selenium WebDrive

Étape 5) La fenêtre contextuelle ci-dessous s'affichera. Cliquez sur le bouton « Redémarrer ».

Configurer Visual Studio avec Selenium WebDrive

Étape 6) Une fois la machine redémarrée, recherchez « Visual Studio » dans le menu Démarrer et cliquez sur le résultat de la recherche. La fenêtre contextuelle suivante apparaîtra. Cliquez sur le lien « Pas maintenant, peut-être plus tard » si vous n'avez pas de compte existant.

Configurer Visual Studio avec Selenium WebDrive

Étape 7) Dans l'écran suivant,

  • Sélectionnez le thème de couleur de votre choix
  • Cliquez sur le bouton « Démarrer Visual Studio »

Configurer Visual Studio avec Selenium WebDrive

Étape 8) L’écran « Commencer » de Visual Studio apparaîtra.

Configurer Visual Studio avec Selenium WebDrive

Créez un nouveau projet dans Visual Studio :

Étape 1) Dans le menu Fichier, cliquez sur Nouveau > Projet

Créer un nouveau projet dans Visual Studio

Étape 2) Dans l'écran suivant,

  1. Sélectionnez l'option 'Visual C#'
  2. Cliquez sur l'application console (.Net Framework)
  3. Entrez le nom comme « Guru99 »
  4. cliquez sur OK

Créer un nouveau projet dans Visual Studio

Étape 3) L'écran ci-dessous s'affichera une fois le projet créé avec succès.

Créer un nouveau projet dans Visual Studio

Configurer Visual Studio avec Selenium Pilote Web :

Étape 1) Accédez à Outils -> NuGet Gestionnaire de packages -> Gérer NuGet Forfaits pour la solution

Configurer Visual Studio avec Selenium pilote web

Étape 2) Dans l'écran suivant

  1. Rechercher Selenium sur l'écran résultant
  2. Sélectionnez le premier résultat de recherche
  3. Cochez la case du projet
  4. Cliquez sur 'Installer'

Configurer Visual Studio avec Selenium pilote web

Étape 3) Cliquez sur le bouton « OK » dans l'écran contextuel

Configurer Visual Studio avec Selenium pilote web

Étape 4) Le message ci-dessous s'affichera une fois le package installé avec succès.

Configurer Visual Studio avec Selenium pilote web

Cadre NUnit : présentation

NUnit est le Tests unitaires framework pris en charge par Visual Studio et Selenium Pilote Web. NUnit est le framework de tests unitaires le plus largement utilisé pour les applications .Net. NUnit présente les résultats des tests dans un format lisible et permet à un testeur de déboguer les tests automatisés.

Nous devons installer NUnit Framework et NUnit Test Adapter sur Visual Studio afin de l'utiliser.

Étapes pour installer NUnit Framework

Maintenant dans ce Selenium avec le tutoriel C#, apprenons le processus d'installation du framework NUnit :

Étape 1) Accédez à Outils -> NuGet Gestionnaire de packages -> Gérer NuGet Forfaits pour la solution

Installer le framework NUnit

Étape 2) Dans la fenêtre suivante

  1. Rechercher NUnit
  2. Sélectionnez le résultat de la recherche
  3. Sélectionnez un projet
  4. Cliquez sur Installer

Installer le framework NUnit

Étape 3) La fenêtre contextuelle ci-dessous apparaîtra. Cliquez sur le bouton « OK ».

Installer le framework NUnit

Étape 4) Le message ci-dessous apparaîtra une fois l'installation terminée.

Installer le framework NUnit

Étapes pour télécharger l’adaptateur de test NUnit

Maintenant, dans ce didacticiel NUnit, nous aborderons les étapes pour télécharger l'adaptateur de test NUnit :

Veuillez noter que les étapes ci-dessous ne fonctionnent que pour les machines 32 bits. Pour les machines 64 bits, vous devez télécharger « NUnit3 Test Adapter » en suivant le même processus que celui mentionné ci-dessous.

Étape 1) Accédez à Outils ->NuGet Gestionnaire de packages -> Gérer NuGet Packages pour la solution. Dans cet écran,

  1. Rechercher NUnitTestAdapter
  2. Cliquez sur Résultat de la recherche
  3. Sélectionnez un projet
  4. Cliquez sur Installer

Télécharger l'adaptateur de test NUnit

Étape 2) Cliquez sur OK dans la fenêtre contextuelle de confirmation. Une fois l'installation terminée, vous verrez le message suivant :

Télécharger l'adaptateur de test NUnit

Selenium et le cadre NUnit

L'intégration de Selenium avec le framework NUnit permet à un testeur de différencier les différentes classes de tests. NUnit permet également aux testeurs d'utiliser des annotations telles que SetUp, Test et TearDown pour effectuer des actions avant et après l'exécution du test.

Le framework NUnit peut être intégré à Selenium en créant une classe de test NUnit et en exécutant la classe de test à l'aide du framework NUnit.

Ci-dessous les étapes de cette opération Selenium Un didacticiel sur le framework C# est nécessaire pour créer et exécuter une classe de test à l'aide du framework NUnit.

Étapes pour créer une classe de test NUnit dans Selenium:

Étape 1) Dans l'Explorateur de solutions, faites un clic droit sur projet > Ajouter > Classe

Créer une classe de test NUnit dans Selenium

Étape 2) La fenêtre de création de classe apparaîtra.

  1. Donnez un nom à la classe
  2. Cliquez sur le bouton Ajouter

Créer une classe de test NUnit dans Selenium

Étape 3) L'écran ci-dessous apparaîtra.

Créer une classe de test NUnit dans Selenium

Étape 4) Ajoutez le code suivant à la classe créée. Veuillez noter que vous devez spécifier l'emplacement du fichier « chromdriver.exe » lors de l'initialisation du pilote 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();
        }

    }
}

Étape 4) Cliquez sur « Construire » -> « Construire une solution »

Créer une classe de test NUnit dans Selenium

NOTE: Vous pouvez obtenir une erreur du type « Ne contient pas de méthode statique « principale » adaptée à un point d'entrée » lorsque vous construisez

Créer une classe de test NUnit dans Selenium

Pour résoudre ce problème, accédez à Projet > Propriétés et modifiez le type de sortie en « Bibliothèque de classes ». La valeur par défaut est « Application console ».

Créer une classe de test NUnit dans Selenium

Étape 5) Une fois la construction réussie, nous devons ouvrir la fenêtre Test Explorer. Cliquez sur Test -> Windows -> Explorateur de tests

Créer une classe de test NUnit dans Selenium

Étape 6) La fenêtre de l'Explorateur de tests s'ouvre avec la liste des tests disponibles. Cliquez avec le bouton droit sur l'Explorateur de tests et sélectionnez Exécuter les tests sélectionnés

Créer une classe de test NUnit dans Selenium

Étape 7) Selenium doit ouvrir le navigateur avec l'URL spécifiée et fermer le navigateur. Le statut du scénario de test sera modifié en « Réussite » dans la fenêtre de l'Explorateur de tests.

Créer une classe de test NUnit dans Selenium

Selenium Commandes WebDriver en C#

C# utilise l'interface « IWebDriver » pour les interactions avec le navigateur. Voici la catégorie de commandes disponibles avec Selenium en C#.

  1. Commandes du navigateur
  2. Commandes des éléments Web
  3. Commandes déroulantes

Maintenant dans le Selenium Tutoriel C Sharp, étudions le Selenium Commandes WebDriver une par une

Commandes du navigateur :

Vous trouverez ci-dessous une liste des commandes de navigateur disponibles en C# avec Selenium.

Nom de la commande Description Syntaxe
Commande URL Cette commande est utilisée pour ouvrir une URL spécifiée dans le navigateur.
driver.Url = "https://www.guru99.com"
Commande de titre Cette commande permet de récupérer le titre de la page Web actuellement ouverte
String title = driver.Title
Commande PageSource Cette commande est utilisée pour récupérer le code source de la page Web actuellement ouverte.
String pageSource = driver.PageSource
Fermer la commande Cette commande est utilisée pour fermer l'instance de navigateur récemment ouverte.
driver.Close();
Quitter la commande Cette commande est utilisée pour fermer toutes les instances de navigateur ouvertes
driver.Quit();
Commande Retour Cette commande est utilisée pour accéder à la page précédente de l'historique du navigateur.
driver.Navigate().Back();
Commandement avancé Cette commande est utilisée pour accéder à la page suivante de l'historique du navigateur.
driver.Navigate().Forward()
Commande Actualiser Cette commande est utilisée pour effectuer l'actualisation du navigateur.
driver.Navigate().Refresh()

Commandes Webelement

Un élément Web représente tous les éléments d'une page Web. Ils sont représentés par des balises HTML. Chacun des boutons, zones de texte, liens, images, tableaux et cadres fait partie des éléments Web. OperaLes actions sur les éléments Web peuvent être déclenchées à l'aide de l'interface IWebelement. Pour interagir avec un Webelement, nous devons trouver l'élément sur la page Web, puis effectuer des opérations sur celui-ci. Des outils comme Firebug et Firepath peuvent être utilisés pour identifier l'élément. Xpath de Webelement.

Voici la liste des commandes Webelement disponibles en C#.

Nom de la commande Description Syntaxe
Cliquez sur la commande Cette commande permet de cliquer sur un Webelement. Pour que l'élément soit cliquable, l'élément doit être visible sur la page Web. Cette commande est également utilisée pour les opérations sur les cases à cocher et les boutons radio.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));  element.Click();
Effacer la commande Cette commande est spécifiquement utilisée pour effacer le contenu existant des zones de texte.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
element.Clear();
Commande EnvoyerKeys Cette commande est utilisée pour saisir une valeur dans les zones de texte. La valeur à saisir doit être passée en paramètre à
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
element.SendKeys("guru99");
Commande affichée Cette commande est utilisée pour identifier si un élément spécifique est affiché sur la page Web. Cette commande renvoie une valeur booléenne ; vrai ou faux selon la visibilité de l'élément Web.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
Boolean status = element.Displayed;
Commande activée Cette commande est utilisée pour identifier si un élément Web particulier est activé sur la page Web. Cette commande renvoie une valeur booléenne ; vrai ou faux en conséquence.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
Boolean status = element.Enabled;
Commande sélectionnée Cette commande est utilisée pour identifier si un élément Web particulier est sélectionné. Cette commande est utilisée pour les cases à cocher, les boutons radio et les opérations de sélection.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
Boolean status = element.Selected;
Soumettre la commande : Cette commande est similaire à la commande clic. La différence réside dans le fait que le formulaire HTML comporte ou non un bouton du type Soumettre. Pendant que la commande de clic clique sur n'importe quel bouton, la commande de soumission clique sur les seuls boutons de type soumettre.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));  element.submit();
Commande de texte Cette commande renvoie le texte interne d'un Webelement. Cette commande renvoie en conséquence une valeur de chaîne.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
String text=element.Text;
Commande NomÉtiquette Cette commande renvoie la balise HTML d'un élément Web. Il renvoie une valeur de chaîne comme résultat.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));  String tagName = element.TagName;
Commande GetCSSValue : Cette méthode permet de renvoyer la couleur d'un élément web sous la forme d'une chaîne rgba (Rouge, Vert, Bleu et Alpha).
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
String color = element.getCSSValue;

Sortie– Si la couleur de l'élément est rouge, la sortie serait rgba(255,0,0,1)

Commandes déroulantes :

Les opérations de liste déroulante en C# peuvent être réalisées à l'aide de la classe SelectElement.

Voici les différentes opérations de liste déroulante disponibles en C#.

Nom de la commande Description Syntaxe
Commande SelectByText Cette commande sélectionne une option dans une liste déroulante en fonction du texte de l'option.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.SelectByText("Guru99");
Commande SelectByIndex Cette commande permet de sélectionner une option en fonction de son index. L'index de la liste déroulante commence à 0.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.SelectByIndex("4");
Commande SelectByValue Cette commande est utilisée pour sélectionner une option en fonction de sa valeur d'option.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.SelectByValue("Guru99");
Commande Options Cette commande permet de récupérer la liste des options affichées dans une liste déroulante.
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);
}

Le code ci-dessus imprime toutes les options sur la console dans une liste déroulante.

Commande IsMultiple Cette commande est utilisée pour identifier si une liste déroulante est une liste déroulante à sélection multiple ; Une liste déroulante à sélection multiple permet à l'utilisateur de sélectionner plusieurs options dans une liste déroulante à la fois. Cette commande renvoie une valeur booléenne.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
Boolean status = select.IsMultiple();
Commande DésélectionnerTout Cette commande est utilisée dans les listes déroulantes à sélection multiple. Il efface les options déjà sélectionnées.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.DeSelectAll();
Commande DeSelectByIndex Cette commande désélectionne une valeur déjà sélectionnée à l'aide de son index.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.DeSelectByIndex("4");
Commande DeSelectByValue Cette commande désélectionne une valeur déjà sélectionnée en utilisant sa valeur.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.DeSelectByValue("Guru99");
Commande DeSelectByText Cette commande désélectionne une valeur déjà sélectionnée à l'aide de son texte.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.DeSelectByText("Guru99");

Échantillons de code

Exemple 1 : Cliquez sur un lien à l'aide du localisateur XPATH :

Scénario de test:

  1. Accédez à la page Web Demo Guru99 – https://demo.guru99.com/test/guru99home/
  2. Maximiser la fenêtre
  3. Cliquez sur le menu "Tests"
  4. Fermez le navigateur
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();
        }
    }
}

Exemple 2 : Saisir des données dans du texteBox et cliquez sur un bouton à l'aide du localisateur XPATH :

Scénario de test:

  1. Accédez à la page de démonstration de Guru 99 – https://demo.guru99.com/test/guru99home/
  2. Saisissez les données dans la zone de texte de l'e-mail
  3. Cliquez sur le bouton d'inscription
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();
                        
        }
    }
}			

Exemple 3 : Saisir des données dans du texteBox et cliquez sur un bouton à l'aide du localisateur CSS :

Scénario de test:

  1. Accédez à la page de démonstration de Guru 99 – https://demo.guru99.com/test/guru99home/
  2. Saisissez les données dans la zone de texte de l'e-mail
  3. Cliquez sur le bouton d'inscription
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();

             
        }
    }
}

Exemple 4 : Sélectionnez une valeur dans la liste déroulante :

Scénario de test:

  1. Accédez à la page de démonstration de Guru 99 – https://demo.guru99.com/test/guru99home/
  2. Cliquez sur SAP lien
  3. Saisissez les données dans les zones de texte du nom et de l'e-mail
  4. Sélectionnez une valeur dans la liste déroulante Cours
  5. Fermez le navigateur
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");
                        
        }
    }
}

Résumé

  • Pour utiliser Selenium WebDriver avec C#, vous devez installer Visual Studio.
  • NUnit est le framework de tests unitaires pris en charge par Visual Studio et Selenium Webdriver
  • Nous devons installer NUnit Framework et NUnit Test Adapter sur Visual Studio afin de l'utiliser.
  • Le framework NUnit peut être intégré à Selenium en créant une classe de test NUnit et en exécutant la classe de test à l'aide du framework NUnit.
  • NUnit permet également aux testeurs d'utiliser des annotations telles que SetUp, Test et TearDown pour effectuer des actions avant et après l'exécution du test.
  • Selenium Les commandes WebDriver peuvent être classées en commandes de navigateur, commandes Webelement et commandes déroulantes.