Tutoriel Selenium C# avec exemple NUnit

Présentation du sélénium

Selenium est un logiciel 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 coder des tests automatisés.

Présentation de C#

C# est un langage de programmation orienté objet dérivé du C++ et de Java. C# permet aux développeurs de créer des applications à l'aide de Visual Studio sur la plateforme .Net. Le suiviwing sont les principales caractéristiques 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 le suivantwing les sections

  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-

Vous trouverez ci-dessous un exemple de programme Selenium 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 l'exemple Selenium C# ci-dessus 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.

Sélénium avec configuration C#

Comment configurer Visual Studio avec Selenium WebDriver :

Maintenant, dans ce didacticiel Selenium C#, apprenons le processus étape par étape pour configurer Visual Studio avec Selenium WebDriver :

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 des 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 WebDriver

É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 WebDriver

É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,

Sélectionnez le chèqueboxes pour

  • Développement de la plate-forme Windows universelle
  • 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. Le suiviwing une fenêtre contextuelle 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

Configurez Visual Studio avec Selenium WebDriver :

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

Configurer Visual Studio avec Selenium WebDriver

Étape 2) Dans l'écran suivant

  1. Recherchez Selenium sur l’écran résultant
  2. Sélectionnez le premier résultat de recherche
  3. Vérifiez le chèque de projetbox
  4. Cliquez sur 'Installer'

Configurer Visual Studio avec Selenium WebDriver

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

Configurer Visual Studio avec Selenium WebDriver

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

Configurer Visual Studio avec Selenium WebDriver

Cadre NUnit : présentation

NUnit est le Tests unitaires framework pris en charge par Visual Studio et Selenium WebDriver. 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 didacticiel Selenium avec C#, apprenons le processus d'installation du framework NUnit :

Étape 1) Accédez à Outils -> Gestionnaire de packages NuGet -> Gérer les packages NuGet 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 le « NUnit3 Test Adapter » en suivantwing le même processus que celui mentionné ci-dessous.

Étape 1) Accédez à Outils -> Gestionnaire de packages NuGet -> Gérer les packages NuGet 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 ce qui suitwing message-

Télécharger l'adaptateur de test NUnit

Cadre Sélénium et 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.

Les étapes ci-dessous de ce didacticiel du framework Selenium C# sont nécessaires 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 suiviwing code à 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

REMARQUE: 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

Commandes Selenium WebDriver en C#

C# utilise l'interface « IWebDriver » pour les interactions du navigateur. Le suiviwing sont 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 didacticiel Selenium C Sharp, étudions les commandes Selenium WebDriver une par une.

Commandes du navigateur :

Following est une liste de 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 Webelement représente tous les éléments d'une page Web. Ils sont représentés par des balises HTML. Chacun des boutons, texteboxLes liens, les images, les tableaux et les cadres relèvent de Webelements. Les opérations sur les éléments Web peuvent être déclenchées à l'aide de l'interface IWebelement. Pour interagir avec un Webelement, nous devons rechercher l'élément sur la page Web, puis effectuer des opérations dessus. Des outils comme Firebug et Firepath peuvent être utilisés pour identifier le Xpath de Webelement.

Le following sont 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 utilisée pour vérifierbox et les opérations des boutons radio également.
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 du texteboxpar exemple.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
element.Clear();
Commande EnvoyerKeys Cette commande est utilisée pour saisir une valeur sur du texte boxes. 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 vérifierboxes, boutons radio et sélectionnez les opérations.
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.

Le following sont 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. Entrez les données dans email texte box
  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. Entrez les données dans email texte box
  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 le lien SAP
  3. Entrez les données sur le nom et email texte boxes
  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 Webdriver Selenium
  • 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.
  • Les commandes Selenium WebDriver peuvent être classées en commandes de navigateur, commandes Webelement et commandes déroulantes.