0% ont trouvé ce document utile (0 vote)
13 vues48 pages

Selenium

Ce document présente une introduction à l'automatisation des tests, en mettant l'accent sur des outils comme Selenium et pytest, ainsi que sur le modèle de page objet (POM). Il discute des avantages et des limites des tests automatisés, des types de tests, et fournit des exemples pratiques d'utilisation de Selenium pour interagir avec des éléments d'interface web. Enfin, il aborde des actions avancées telles que la gestion des alertes et des fenêtres, ainsi que des sélecteurs pour localiser des éléments dans le DOM.

Transféré par

lanouarmariem
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
13 vues48 pages

Selenium

Ce document présente une introduction à l'automatisation des tests, en mettant l'accent sur des outils comme Selenium et pytest, ainsi que sur le modèle de page objet (POM). Il discute des avantages et des limites des tests automatisés, des types de tests, et fournit des exemples pratiques d'utilisation de Selenium pour interagir avec des éléments d'interface web. Enfin, il aborde des actions avancées telles que la gestion des alertes et des fenêtres, ainsi que des sélecteurs pour localiser des éléments dans le DOM.

Transféré par

lanouarmariem
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Automatisation des

tests

Yessine Hadj Kacem

Maître de conférences en informatique

PMP® Certified

ISTQB® Certified
Plan
2

▪ Introduction aux tests automatisés

▪ Utilisation de Selenium pour les tests


automatisés

▪ Framework pytest

▪ Patron Page Object Model (POM)


Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
3
3 Objectifs

 Comprendre les bases du test automatisé

 Découvrir les outils Selenium et pytest

 Apprendre les principes du Page Object Model (POM)


Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
4
4 Différence entre les tests manuels et automatisés

 Tests manuels

▪ Nécessite une intervention

humaine

▪ Idéal pour tests exploratoires

 Tests automatisés

▪ Exécutés par script

▪ Efficace pour les tests répétitifs


Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
5
5 Tests automatisés

 Automatiser l'exécution des tests pour vérifier le bon fonctionnement

des fonctionnalités

 Principes clés:

▪ Réduction de l'intervention humaine

▪ Répétabilité et efficacité
Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
6
6 Avantages de l'automatisation des tests
 Prévention des erreurs humaines simples

 Gain de temps grâce à la réduction du travail manuel répétitif : Le

test doit être joué plus d’une fois

 Evaluation plus objective (par exemple, de la couverture)

 Accès plus facile à l'information sur les tests pour soutenir la gestion

des tests et le reporting des tests

 Réduction des délais d'exécution des tests pour une détection plus

précoce des défauts


Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
7
7 Limites des tests automatisés

 Estimations inexactes du temps

 Trop grande dépendance à l'égard d'un outil

 Incompatibilité de l'outil d'automatisation avec la plateforme de

développement

 Maintenance coûteuse si l'application change souvent

 Inefficace pour les tests exploratoires et UX


Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
8
8 Outils de test automatisé

 Selenium: Automatisation de tests d'interface utilisateur

 pytest: Framework pour organiser et exécuter des tests en Python


Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
9
9 Cycle de vie des tests automatisés

 Conception des cas de test

 Implémentation des cas de test

 Rédaction des scripts de test

 Exécution des tests

 Analyse des résultats et génération de rapports de défauts


Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
10
10 Types et niveaux de tests automatisés

 Types de tests automatisés

▪ Tests fonctionnels

▪ Tests de régression

▪ Tests non- fonctionnels : Test de performance et de charge

 Niveaux de tests automatisés


Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
11
11 Selenium pour les tests automatisés

 Outil open-source pour l'automatisation des navigateurs

 Composants: WebDriver, IDE, GridTests fonctionnels

▪ WebDriver : Interface permettant de contrôler un navigateur pour


automatiser des interactions web.
▪ IDE : Outil d'enregistrement et de relecture de tests Selenium, utile pour
créer des scripts sans coder.

▪ Grid : Infrastructure permettant d'exécuter des tests en parallèle sur


plusieurs navigateurs et plateformes
Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
12
12 Selenium : Polyvalence et Utilisations

 Compatibilité multi-langages :

▪ Selenium supporte plusieurs langages de programmation, notamment


Java, Python, C#, Ruby, et JavaScript.

 Applications :

▪ Automatisation des tests : Selenium est principalement utilisé pour


automatiser les tests d’interfaces web.

▪ Web Scraping : Il peut également être utilisé pour extraire des données de
sites web, bien qu’il ne soit pas spécifiquement conçu pour le scraping.

 Avantage : Sa flexibilité et sa compatibilité en font un outil largement

adopté pour divers projets d’automatisation web.


Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
13
13 Structure d’un script Selenium

 Initialisation du WebDriver

 Navigation vers une URL

 Fermeture du navigateur

 Exemple de code pour démarrer un navigateur Edge et accéder à une

URL
driver = webdriver.Edge()
url="https://www.google.com"
driver.get(url)
Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
14
14 Navigation et Contrôle du Navigateur avec Selenium

 driver.back() # Retourne à la page précédente

 print(driver.title) # Affiche le titre de la page actuelle

 driver.forward() # Avance vers la page suivante

 driver.refresh() # Recharge la page actuelle

 driver.close() # Ferme la fenêtre active du navigateur

 driver.quit() # Ferme toutes les fenêtres et termine la session


WebDriver

 sleep(n) #NB: Il est important de faire une pause de n


secondes pour visualiser l'action
Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
15
15 Eléments d’une interface Web
Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
16
16 Les sélecteurs dans Selenium

 Sélecteurs courants: id, name, class, CSS selectors, XPath

 Utilisation: Trouver des éléments pour interagir avec eux


Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
17
17 Les sélecteurs dans Selenium

 Par ID : Localise un élément unique sur la page via son identifiant, souvent

privilégié car l'ID est unique


element = driver.find_element(By.ID, "username")

 Par nom (NAME) : Localise un élément par son nom. Selenium

interagit avec le premier élément correspondant trouvé


element = driver.find_element(By.NAME, "login")

 Par Texte du Lien (LINK_TEXT): Utilisé uniquement pour localiser des

hyperliens en fonction du texte visible du lien


element = driver.find_element(By.LINK_TEXT, "Register")
Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
18
18 Les sélecteurs dans Selenium
 Par Nom de Balise (TAG_NAME) : Localise des éléments en fonction de leur
balise HTML (par exemple, <input>, <button>).

→ Peut être utilisé pour trouver plusieurs éléments du même type.

all_links = driver.find_elements(By.TAG_NAME, "a")

 Par Nom de Classe (className) :Localise des éléments en fonction

de leur nom de classe CSS.

element = driver.find_element(By.CLASS_NAME, "sample1")


elements = driver.find_elements(By.CLASS_NAME, "sample1")
for element in elements:
print(element.text)
Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
19
19 Les sélecteurs dans Selenium
 Par Nom de Balise (TAG_NAME) : Localise des éléments en fonction de leur
balise HTML (par exemple, <input>, <button>).

→ Peut être utilisé pour trouver plusieurs éléments du même type.

all_links = driver.find_elements(By.TAG_NAME, "a")

 Par Nom de Classe (className) :Localise des éléments en fonction

de leur nom de classe CSS.

element = driver.find_element(By.CLASS_NAME, "sample1")


elements = driver.find_elements(By.CLASS_NAME, "sample1")
for element in elements:
print(element.text)
Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
20
20 Les sélecteurs dans Selenium : Xpath

 // : Sélectionnez le nœud actuel.

 Nom de l'étiquette : Nom de variable du nœud particulier.

 @: Sélectionnez l'attribut.

 Attribut: Nom d'attribut du nœud.

 Valeur: Valeur de l'attribut.


Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
21
21 Les sélecteurs dans Selenium : XPath

 XPath permet de localiser des éléments en naviguant dans la structure DOM via
des expressions de chemin.

 XPath relatif : Utilise //, permet de localiser un élément indépendamment de sa


position exacte dans le DOM

element = driver.find_element(By.XPATH, "//div[@id='login']")

 XPath absolu : Débute à la racine du document avec / et spécifie un chemin


complet, mais est moins flexible car toute modification de la structure DOM
peut rendre le chemin invalide.

element = driver.find_element(By.XPATH,
"/html/body/div[1]/div[2]/div[1]/input")
Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
22
22 Les sélecteurs dans Selenium : XPath

 Par Sélecteur CSS (cssSelector) : Le cssSelector permet de localiser des


éléments en utilisant des règles CSS. Il est souvent plus rapide que l'XPath.

element = driver.find_element(By.CSS_SELECTOR, "#gh-btn")

 Par Texte Partiel du Lien (partialLinkText) : Permet de localiser un hyperlien en


utilisant une partie du texte du lien, utile lorsque le texte complet n’est pas
connu.

element = driver.find_element(By.PARTIAL_LINK_TEXT, "Reg


Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
23
23 Actions Avancées avec Selenium : Sélection et Gestion de Fenêtres

 Changer de Fenêtre Permet de basculer vers une autre fenêtre ou un autre


onglet du navigateur.

driver.switch_to.window(handles[1])

 Sélection d'Option dans une Liste Déroulante Exemple de sélection d'une


option dans un menu déroulant.

dropdown = Select(driver.find_element(By.ID, "dropdownMenu"))

dropdown.select_by_index(2)# Sélection par index

dropdown.select_by_visible_text("Option 3") # Sélection par texte


visibleconnu.
Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
24
24 Actions Avancées avec Selenium : Souris et Clavier

 Clic Droit et Double Clic Permet d'effectuer des actions de clic avancées sur
des éléments.

action = ActionChains(driver)

element_right_click = driver.find_element(By.ID,
"rightClickElement")

action.context_click(element_right_click).perform() # Clic droit

element_double_click = driver.find_element(By.ID,
"doubleClickElement")

action.double_click(element_double_click).perform() # Double
clic
Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
25
25 Actions Avancées avec Selenium : Souris et Clavier

 Drag and Drop (Glisser-Déposer)

 Déplace un élément de la source à la cible.

source = driver.find_element(By.ID, "sourceElement")

target = driver.find_element(By.ID, "targetElement")

action.drag_and_drop(source, target).perform()
Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
26
26 Actions Avancées avec Selenium : Raccourcis Clavier et Glissement

 Copier et Coller avec le Clavier Imite les raccourcis clavier pour sélectionner,
copier et coller du texte.

input1.send_keys("example text")

action.key_down(Keys.CONTROL).send_keys("a").key_up(Keys.CONTROL).
perform() # Sélectionner tout

action.key_down(Keys.CONTROL).send_keys("c").key_up(Keys.CONTROL).
perform() # Copier

input2.click()

action.key_down(Keys.CONTROL).send_keys("v").key_up(Keys.CONTROL).
perform() # Coller.
Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
27
27 Actions Avancées avec Selenium : Raccourcis Clavier et Glissement

 Déplacement de Curseurs dans un Slider

 Déplace les curseurs dans un composant de type slider.

min_slider = driver.find_element(By.XPATH, "//div[@class='slider-


handle'][1]")

max_slider = driver.find_element(By.XPATH, "//div[@class='slider-


handle'][2]")

action.drag_and_drop_by_offset(min_slider, 50, 0).perform() #


Glisse le curseur minimum

action.drag_and_drop_by_offset(max_slider, -30, 0).perform() #


Glisse le curseurs
Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
28
28 Gestion des pop-ups et des alertes

 Accepter une Alerte en cliquant sur le bouton "OK".

# Basculer vers l'alerte


alert = driver.switch_to.alert
# Accepter l'alerte
alert.accept()

 Rejeter une Alerte:Rejette l'alerte en cliquant sur le bouton "Annuler" (si


disponible).

# Basculer vers l'alerte


alert = driver.switch_to.alert
# Rejeter l'alerte
alert.dismiss()
Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
29
29 Gestion des pop-ups et des alertes

 Récupérer le Texte d'une Alerte

 Extrait le texte affiché dans l'alerte, utile pour des vérifications ou des
assertions.

# Basculer vers l'alerte


alert = driver.switch_to.alert
# Récupérer le texte de l'alerte
alert_text = alert.text
print(f"Texte de l'alerte : {alert_text}")
Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
30
30 Gestion des pop-ups et des alertes

 Exemple Complet : Manipulation d'une Alerte


# Simuler une action qui déclenche une alerte
driver.find_element(By.ID, "triggerAlertButton").click()
# Basculer vers l'alerte
alert = driver.switch_to.alert
# Récupérer et afficher le texte de l'alerte
print(f"Texte de l'alerte : {alert.text}")
# Choisir une action en fonction du texte de l'alerte
if "Confirmer" in alert.text:
alert.accept() # Accepter si le texte correspond
else:
alert.dismiss() # Rejeter autrement
# Basculer vers l'alerte
alert = driver.switch_to.alert
# Récupérer le texte de l'alerte
alert_text = alert.text
print(f"Texte de l'alerte : {alert_text}")
Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
31
31 Exceptions Courantes et Gestion dans Selenium

 Exceptions Courantes

▪ NoSuchElementException : Levée lorsque Selenium ne trouve pas un élément sur la


page, souvent parce que l'élément n'est pas encore chargé ou parce que le
sélecteur est incorrect.

▪ TimeoutException : Levée lorsque Selenium attend trop longtemps une condition


(par exemple, la présence d'un élément) sans succès. Couramment utilisée avec
WebDriverWait.

 Gestion des Exceptions avec try-except

▪ Utiliser des blocs try-except pour capturer les exceptions et réagir en conséquence
sans interrompre l'exécution du script.
Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
32
32 Exceptions Courantes et Gestion dans Selenium

# Initialisation du driver
driver = webdriver.Chrome()
driver.get("https://example.com")

try:
# Essayer de trouver un élément avec un délai d'attente
explicite
element = WebDriverWait(driver,
10).until(EC.presence_of_element_located((By.ID, "username")))
element.send_keys("test_user")
except NoSuchElementException:
print("Erreur : Élément introuvable.")
except TimeoutException:
print("Erreur : Temps d'attente dépassé pour la recherche
de l'élément.")
finally:
driver.quit()
Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
33
33 Utilisation de Selenium pour les assertions de base

 Vérifier la Présence d'un Élément

driver = webdriver.Chrome()

driver.get("https://example.com")

try:

element = driver.find_element(By.ID, "username")

assert element is not None, "L'élément 'username' est


introuvable sur la page."

print("Présence de l'élément vérifiée avec succès.")

except NoSuchElementException:

print("Erreur : Élément non trouvé.")


Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
34
34 Utilisation de Selenium pour les assertions de base

 Comparer le Texte Affiché avec le Texte Attendu

driver = webdriver.Chrome()
driver.get("https://example.com")
# Récupérer le texte d'un élément
element = driver.find_element(By.ID, "welcomeMessage")
actual_text = element.text
expected_text = "Bienvenue sur notre site"
# Assertion pour comparer les textes
assert actual_text == expected_text, f"Erreur : Texte affiché
'{actual_text}' ne correspond pas au texte attendu
'{expected_text}'."
print("Le texte affiché correspond au texte attendu.")
Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
35
35 Introduction à pytest

 Framework de test pour Python

 Permet l'écriture de tests simples et organisés

 Installation:

▪ Installer pytest via pip

▪ Configurer pytest pour le projet


Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
36
36 Introduction à pytest

 Nommage et Organisation des Fichiers

▪ Nommage des fichiers : Les fichiers de test doivent commencer par le


préfixe test_ (par exemple, test_login.py).
▪ Nommage des fonctions : Chaque fonction de test doit également
commencer par test_, ce qui facilite l'identification et l'exécution.

 Pour une organisation optimale, opter pour une séparation claire du

code source et des tests :

▪ Dossier src : Contient le code source de l’application.

▪ Dossier tests : Contient tous les tests organisés en sous-dossiers si


nécessaire.
Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
37
37 Exemple de Structure de projet pytest

project-root/
├── src/
│ └── main_code.py
├── tests/
│ ├── test_main_code.py
│ └── __init__.py # Facilite l'import de modules entre tests
├── pytest.ini # Configuration de Pytest (ex. : options de tests, gestion
des paths)
└── requirements.txt
 pytest.ini : Permet de configurer Pytest pour spécifier des options, tels que le
niveau de log, les marqueurs de test, et les chemins des dossiers src et tests.

 __init__.py : Fichier vide placé dans les dossiers pour les traiter comme des
packages Python, facilitant l'importation de modules entre les src et tests
Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
38
38 Fixtures dans Pytest

 Les fixtures dans Pytest sont des fonctions spéciales qui permettent

de créer des configurations ou des états initiaux

 Elles sont très utiles pour préparer des ressources, comme des

connexions à une base de données, des navigateurs, ou des

configurations communes, et ainsi éviter la duplication de code.

 Créer une Fixture de Base : Une fixture est définie avec le décorateur

@pytest.fixture. Elle peut être appelée automatiquement par plusieurs

tests pour fournir des configurations ou des données partagées.


Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
39
39 Fixtures dans Pytest : Exemple

import pytest

from selenium import webdriver

# Définir une fixture qui initialise un navigateur Chrome

@pytest.fixture

def browser():

driver = webdriver.Chrome()

driver.get("https://example.com")

yield driver # La fonction se met en pause et attend


que le test se termine

driver.quit()
Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
40
40 Utiliser une Fixture dans un Test

 Utiliser une Fixture dans un Test : Les tests peuvent accéder aux

fixtures en ajoutant le nom de la fixture comme paramètre

 Exemple de test utilisant la fixture browser :

# Utilise la fixture pour accéder au navigateur initialisé


def test_title(browser):
assert browser.title == "Example Domain", "Le titre
de la page est incorrect".
Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
41
41 Chaînage de Fixtures

 Il est également possible de chaîner les fixtures, permettant de

construire des configurations complexes tout en gardant chaque

fixture simple et modulaire.

 Exemple de test utilisant la fixture browser :


def login(browser):
browser.find_element(By.ID, "username").send_keys("user")
browser.find_element(By.ID, "password").send_keys("pass")
browser.find_element(By.ID, "login").click()
yield browser # Permet de continuer avec un navigateur
connecté
Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
42
42 Patron de conception Page Object Model (POM)

 Modèle pour organiser le code de test

 Séparation de la logique de test et des interactions avec l'interface

utilisateur
Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
43
43 Structure d'un objet de page dans POM
 Classe Python représentant une page

 Contient les éléments et méthodes pour interagir avec la page

 Modularité et Réutilisation : Chaque page a sa propre classe.

 Séparation des Préoccupations : La logique de l’application (les

interactions avec les éléments) est séparée de la logique de test.

 Facilité de Maintenance : Si un élément de la page change il suffit de

modifier la classe représentant cette page, et non tous les tests.


Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
44
44 Exemple de Classe pour la page d’accueil

from selenium.webdriver.common.by import By


class LoginPage:
textbox_username_id = "user-name"
textbox_password_id = "password"
button_login_xpath = "//input[@id='login-button']"
button_menu_logout="//button[@id='react-burger-menu-
btn']"
link_logout = "//a[@id='logout_sidebar_link']"
def __init__(self, driver):
self.driver = driver
def setUserName(self, username):
self.driver.find_element(By.ID,
self.textbox_username_id).clear()
self.driver.find_element(By.ID,
self.textbox_username_id).send_keys(username)
Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
45
45 Exemple de Classe pour la page d’accueil

def setPassword(self, password):


self.driver.find_element(By.ID,
self.textbox_password_id).clear()
self.driver.find_element(By.ID,
self.textbox_password_id).send_keys(password)

def clickLogin(self):
self.driver.find_element(By.XPATH,
self.button_login_xpath).click()
def clickLogout(self):
self.driver.find_element(By.XPATH,
self.button_menu_logout).click()
self.driver.find_element(By.XPATH,
self.link_logout).click()
Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
46
46 Exemple d’utilisation dans un test

class Test_001_Login:
url = "https://www.saucedemo.com/"
username = "standard_user"
password = "secret_sauce"
def test_homePageTitle(self):
self.driver = webdriver.Chrome()
self.driver.get(self.url)
actualTitle = self.driver.title
assert actualTitle == "Swag Labs"
self.driver.close()
print("Test for home page passed")
Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
47
47 Exemple d’utilisation dans un test

def test_login(self):
self.driver = webdriver.Chrome()
self.driver.get(self.url)
self.loginPage = LoginPage(self.driver)
self.loginPage.setUserName(self.username)
self.loginPage.setPassword(self.password)
self.loginPage.clickLogin()
text = self.driver.find_element(By.CLASS_NAME,
"title").text
assert "products" in text.lower()
print("TEST PASSED : LOGIN SUCCESSFUL")
Introduction aux tests automatisés
Selenium pour les tests automatisés
Framework pytest
Patron Page Object Model (POM)
48
48 Applications

 Exercices

 Mini-Projet

Vous aimerez peut-être aussi