Ce guide détaillle la création d'un programme d'automatisation de test pour le site web de Baidu en utilisant Visual Studio 2022 et Selenium WebDriver. L'objectif principal est de simuler des interactions utilisateur, telles que l'accès à la recherche, avec la possibilité d'étendre à des scénarios comme la connexion ou la passation de commande.
Configuration du projet dans Visual Studio
Commencez par créer un nouveau projet de console .NET dans Visual Studio 2022. Ajoutez ensuite le package NuGet Selenium.WebDriver et le WebDriver approprié pour votre navigateur, par exemple ChromeDriver pour Google Chrome, via le gestionnaire de packages NuGet.
Implémentation du code d'automatisation
Le code est développé progressivement pour accéder à Baidu, effectuer une recherche et vérifier les résultats. Nous utilisons des techniques modernes comme les attentes explicites pour une meilleure robustesse.
Première version : accès basique
Cette version ouvre Baidu, saisit un terme de recherche et affiche le titre de la page avant et après l'action.
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
var piloteChrome = new ChromeDriver();
piloteChrome.Navigate().GoToUrl("https://www.baidu.com");
Console.WriteLine(piloteChrome.Title);
piloteChrome.FindElement(By.Name("wd")).SendKeys("selenium" + Keys.Enter);
Console.WriteLine(piloteChrome.Title);
piloteChrome.Quit();
Deuxième version : avec attente explicite
Pour éviter les problèmes de synchronisation, nous remplaçons les pauses arbitraires par une attente explicite qui attend que le titre contienne le mot-clé recherché.
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;
var conducteur = new ChromeDriver();
conducteur.Navigate().GoToUrl("https://www.baidu.com");
Console.WriteLine(conducteur.Title);
string motRecherche = "automatisation";
conducteur.FindElement(By.Name("wd")).SendKeys(motRecherche + Keys.Enter);
var attente = new WebDriverWait(conducteur, TimeSpan.FromSeconds(5));
attente.Until(d => d.Title.Contains(motRecherche));
Console.WriteLine(conducteur.Title);
conducteur.Quit();
Troisième version : vérification fonctionnelle
Cette version ajoute une vérification pour s'assurer que la recherche a correctement fonctionné, en analysant le titre de la page et affichant un message de statut.
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;
var navigateur = new ChromeDriver();
navigateur.Navigate().GoToUrl("https://www.baidu.com");
string titreInitial = navigateur.Title;
Console.WriteLine(titreInitial);
string termeSaisi = "test automatisé";
navigateur.FindElement(By.Name("wd")).SendKeys(termeSaisi + Keys.Enter);
var delai = new WebDriverWait(navigateur, TimeSpan.FromSeconds(5));
delai.Until(d => d.Title.Contains(termeSaisi));
string titreResultat = navigateur.Title;
Console.WriteLine(titreResultat);
bool rechercheValide = titreResultat.Contains(termeSaisi);
if (rechercheValide)
{
Console.WriteLine("La recherche sur Baidu fonctionne comme prévu.");
}
else
{
Console.WriteLine("Échec détecté dans la fonctionnalité de recherche de Baidu.");
}
navigateur.Quit();
Exécution et résultats
Lors de l'exécution dans Visual Studio, le navigateur Chrome s'ouvre automatiquement, accède à Baidu, saisit le terme de recherche, et après vérification, se ferme proprement. Le journal de la console affiche le titre de la page et le résultat de la vérification. Ce programme peut être adapté pour inclure des tests plus avancés, comme l'authentification utilisateur ou la gestion des commandes sur des sites e-commerce.