Comment utiliser les bases du fonctionnement automatique du navigateur Web avec Selenium of Python

Selenium WebDriver est l’un des outils les plus populaires en matière d’automatisation de l’interface utilisateur Web. Le framework Selenium peut être utilisé avec un large éventail de langages de programmation tels que Python, Java, C #, etc. Selon l’enquête Stack Overflow Developer Survey, Python est l’un des langages de programmation les plus apprécié avec 66,7% de vote. C’est aussi le langage de programmation le plus recherché. Donc, si vous envisagez d’automatiser les tests avec Selenium et Python, vous êtes au bon endroit!

En lisant cet article, vous apprendrez les bases de l’utilisation de Selenium.

Qu’est-ce que Selenium WebDriver?

Une page Web se compose de différents éléments Web, tels que des zones de texte, des cases à cocher, des boutons, etc. Les tests d’automatisation Web impliquent l’automatisation des tâches à effectuer sur ces éléments Web. Selenium WebDriver est un cadre de test d’automatisation Web populaire qui est principalement utilisé pour automatiser les tâches liées aux tests de l’interface utilisateur Web.

Selenium WebDriver n’interagit pas directement avec les éléments Web d’une page. Un Selenium WebDriver spécifique au navigateur sert de pont entre le script de test et le navigateur Web. Selenium WebDriver est le composant principal qui communique avec le navigateur Web.

Selenium WebDriver prend en charge la plupart des langages de programmation populaires utilisés par les développeurs et les testeurs, à savoir — Python, Java, C #, Ruby, etc. Il prend en charge les systèmes d’exploitation courants tels que Windows, Mac OS, Linux et Solaris.

Mozilla Firefox est le navigateur Web par défaut de Selenium WebDriver.

Suite d’outils Selenium

La version v1 de Selenium se composait de IDE, RC et Selenium Grid. La dernière version stable de Selenium est 3.141.59 et la version Alpha de Selenium 4 est 4.0.0-alpha-6. Toutes les bibliothèques clientes Selenium sont compatibles avec Selenium 4.

Selenium WebDriver a été introduit dans Selenium v2 et Selenium RC a été abandonné dans Selenium 3. Selenium RC a une architecture plus complexe et manque également de performances.

Selenium Suite comprend les composants suivants:

  • Selenium Integrated Development Environment (Selenium IDE)
  • Selenium WebDriver
  • Selenium Remote Control (RC)
  • Selenium Grid

Test d’automatisation Selenium avec Python

Maintenant que vous avez une compréhension détaillée de Selenium WebDriver, nous passons à la partie où nous allons montrer comment utiliser Selenium WebDriver avec Python. Nous commençons cette section du didacticiel Selenium Python en configurant Selenium, Python, etc.

Configurer Selenium WebDriver avec Python

Préparations nécessaires pour utiliser Selenium

Certaines préparations sont nécessaires pour faire fonctionner automatiquement un navigateur Web avec Selenium.

Installez Selenium

pip install selenium

Selenium est une bibliothèque externe et doit être installée.
Avant d’exécuter le programme, écrivez et installez comme ci-dessus.

Téléchargez WebDriver sur votre PC

Tout d’abord, préparez un outil appelé WebDriver qui vous permet de faire fonctionner le navigateur Web de l’extérieur.

La version du navigateur Web et la version du pilote Web doivent être identiques.

Navigateur qui peut être utilisé avec Selenium

Cette fois, nous utiliserons le populaire Google Chrome à l’aide du pilote Chrome.

Le pilote Chrome qui peut être installé avec pip est pratique

Avant de préparer le pilote Web, vous devez le télécharger sur votre ordinateur.

Python a une bibliothèque pratique appelée chromedriver_binary, et vous pouvez installer le pilote Chrome en écrivant la ligne suivante:

pip install chromedriver_binary == version du pilote chrome

Page de référence chromedriver-binary · PyPI

La partie «Version du pilote Chrome» peut être trouvée en ouvrant «Paramètres» -> «À propos de Chrome» dans Chrome. Veuillez saisir la valeur.

chromedriver_binary est pratique car il n’a pas besoin d’être dans le PATH L’avantage de l’utilisation est que vous n’avez pas à passer par votre PATH.C’est fluide car il n’y a aucune erreur que vous devez passer par le PATH commun.

Comment utiliser un navigateur Web avec Selenium

Maintenant, d’ici, je vais vous expliquer l’utilisation spécifique de Selenium.

Voyons comment faire fonctionner un navigateur Web à l’aide de Selenium.

from selenium import webdriver

Tout d’abord, importez la bibliothèque Selenium au début du programme.

import chromedriver_binary

Si vous utilisez ChromeDriver_binary, importez-le également.

Lancer un navigateur Web

webdriver.Chrome()

Dans webdriver.Chrome (), lancez un navigateur Web avec une page vide.
Vous pouvez utiliser le navigateur Web en donnant une commande à l’objet WebDriver de la valeur de retour

Stockez l’objet WebDriver obtenu dans la variable de pilote.

driver = webdriver.Chrome()

Le code jusqu’à présent est le suivant, et une fois exécuté, un navigateur vide sera lancé.

Dans Selenium, la méthode de démarrage est différente pour chaque navigateur Web, alors vérifions-la.

Accéder à l’URL spécifiée

  • Page de visite
driver.get (“URL à laquelle vous souhaitez accéder”)

Utilisez get() pour accéder à l’URL spécifiée dans l’argument.

Par exemple, lors de l’accès à Google

driver.get(“https://www.google.com/")
  • Retour à la page (retour du navigateur)
driver.back()

Utilisez back () pour revenir à la page précédente du navigateur.

  • Parcourir la page (annuler le navigateur en arrière)
driver.forward()

Utilisez forward() pour annuler le navigateur en arrière et aller à la page suivante.

Actualiser la page (recharger)

driver.refresh()

Refresh() recharge la page actuelle

Opération pour fermer la fenêtre

  • Fermer une fenêtre
driver.close()

Fermez la fenêtre actuelle avec close().

  • Fermez toutes les fenêtres
driver.quit()

Fermez toutes les fenêtres avec quit().

Renseignez-vous sur l’URL spécifiée

  • Recherchez l’URL de la page
driver.current_url

Récupère la chaîne de l’URL de la page actuelle avec current_url.

  • Examinez le titre de la page
driver.title

Dans title, récupère la chaîne du titre de la page en cours.

  • Obtenez la source de la page
driver.page_source

Récupère la chaîne de code source de la page actuelle avec page_source.

Tout d’abord, sélectionnez l’endroit où vous souhaitez utiliser les éléments HTML

Une fois que vous avez accès à la page, spécifions l’endroit où vous souhaitez opérer ensuite.
La cible à utiliser sur la page Web est spécifiée par l’élément HTML et sélectionnée.

Vous pouvez utiliser la méthode find_element pour obtenir l’élément sélectionné en tant qu’objet WebElement.

La méthode find_element est OK si vous vous souvenez de driver.find_element_by ~ ~.
Si vous souhaitez spécifier plusieurs éléments, vous pouvez utiliser driver.find_elements_by ~ ~.

Sélectionnez l’emplacement que vous souhaitez utiliser à partir de l’attribut ou du nom de balise

name

driver.find_element_by_name (“attribut de nom que vous voulez sélectionner”)

Avec find_element_by_name (), sélectionnez l’élément qui correspond à l’attribut name de l’argument.

class

driver.find_element_by_class_name (“attribut de classe à sélectionner”)

Dans find_element_by_class_name (), sélectionnez l’élément qui correspond à l’attribut class de l’argument.

tag

driver.find_element_by_tag_name(“Nom de la balise que vous souhaitez sélectionner”)

Dans find_element_by_tag_name (), sélectionnez l’élément qui correspond au nom de balise de l’argument.

id

driver.find_element_by_id (“attribut id que vous voulez sélectionner”)

Avec find_element_by_id (), sélectionnez l’élément qui correspond à l’attribut id de l’argument.
Si c’est un élément qui a un attribut id, il est recommandé car il peut être réduit à la fois.

S’il y a plusieurs éléments correspondants, seul le premier trouvé sera sélectionné.

Spécifiez l’emplacement que vous souhaitez utiliser avec xpath ou css

xpath

driver.find_element_by_xpath (“xpath que vous voulez sélectionner”)

Avec find_element_by_xpath (), sélectionnez l’élément qui correspond à l’argument xpath.

css

driver.find_element_by_css_selector(“sélecteur css que vous voulez sélectionner”)

Avec find_element_by_css_selector (), sélectionnez l’élément qui correspond à l’argument css selector.

Vous pouvez utiliser les sélecteurs xpath et css pour spécifier l’élément que vous souhaitez sélectionner en détail.
Avec cette méthode, vous pouvez spécifier le ème attribut, afin de pouvoir identifier l’élément de manière fiable.

Les xpaths et les sélecteurs css sont comme des expressions conditionnelles utilisées pour représenter des éléments en html.
Même si vous ne savez pas comment l’écrire, vous pouvez le rechercher dans les outils de développement de Chrome, donc ça va.

Actionnez ensuite l’élément sélectionné

Une fois que vous avez sélectionné où vous voulez opérer, vous pouvez indiquer ce que vous voulez faire ensuite.

Après avoir sélectionné un élément, vous pouvez manipuler l’élément en donnant des commandes à l’objet WebElement.

Opérations de clic et de saisie au clavier

  • Cliquez sur
driver.find_element_by_element(“élément à sélectionner”).click()

Cliquez sur l’élément sélectionné avec un click().

  • La saisie au clavier
driver.find_element_by_element(“élément à sélectionner”).send_keys("votre texte")
  • Soumettre un formulaire
driver.find_element_by_element(“élément à sélectionner”).submit()

submit() pour soumettre les informations saisies.
Il est utilisé après la saisie au clavier.

En plus des valeurs de chaîne, il existe également des méthodes pour saisir des clés spéciales.

En utilisant cela, vous pouvez également effectuer des opérations telles que la pression sur le clavier en même temps.

element.send_keys(Keys.SHIFT,”selenium”)

(Exemple) Code pour entrer “selenium” tout en maintenant la touche Shift enfoncée

Sélectionnez liste déroulante

Vous pouvez également effectuer des opérations telles que la sélection d’une zone déroulante comme indiqué dans ↑.

from selenium.webdriver.support.select import Select

Après avoir importé Select ci-dessus, vous pourrez utiliser la boîte de sélection.

  • index
Select(element).select_by_index(index)

Dans select_by_index(), sélectionnez par numéro d’index.

  • value
Select(element).select_by_value(“value”)

Sélectionnez grâce à l’attribut value avec select_by_value ().

  • text
Select(element).select_by_visible_text(“text”)

Utilisez select_by_visible_text() pour sélectionner dans le texte affiché.

À titre d’exemple d’utilisation, pour sélectionner dans une liste déroulante, écrivez comme suit :

from selenium import webdriver
from selenium.webdriver.support.select import Select
import chromedriver_binary

driver = webdriver.Chrome()
driver.get("url")
//1 représente est l'index
select_num = 1

element = driver.find_element_by_name("exemple")

select = Select(element)
select.select_by_index(select_num)

Extraire les informations des éléments sélectionnés

  • Obtenir du texte
driver.find_element_by_ element(“élément à sélectionner”).text

Dans le texte, récupérez le texte de l’élément sélectionné.

  • Obtenir le nom de la balise
driver.find_element_by_ element(“élément à sélectionner”).tag_name

Utilisez tag_name pour obtenir le nom de la balise de l’élément sélectionné.

  • Obtenir la valeur d’un attribut
driver.find_element_by_ element(“élément à sélectionner”). get_attribute(“nom d’attribut”)
  • Obtenir les coordonnées
driver.find_element_by_element(“élément à sélectionner”).location

Dans l’emplacement, obtenez la coordonnée x et la coordonnée y de l’élément sélectionné sur la page.

Vérifier l’état de l’élément

  • L’élément est-il sélectionné
driver.find_element_by_element(“élément à sélectionner”).is_selected 
()

Vérifiez si l’élément est sélectionné avec is_selected().

  • L’élément est-il activé
driver.find_element_by_element(“élément à sélectionner”).is_enabled()

is_enabled() pour voir si l’élément est activé.

  • L’élément est-il affiché
driver.find_element_by_element(“élément à sélectionner”).is_displayed()

Vérifiez si l’élément est affiché avec is_displayed ().

Changer le dossier de téléchargement

Si vous souhaitez modifier le dossier de téléchargement de ChromeDriver par défaut, ajoutez ce qui suit. Les téléchargements éffectués pendant le test iront dans le chemin spécifié.

Entrez le chemin modifié dans la pièce d’entrée.

Selenium WebDriver est largement utilisé pour les tests d’automatisation, car il est open-source et prend en charge les langages de programmation populaires tels que Python, C #, Java, etc. Les pilotes de navigateur appropriés sont utilisés pour interagir avec le navigateur sur lequel les tests d’automatisation doivent être effectués. Cela ajoute une couche d’abstraction à l’interaction avec le navigateur Web.

Vous pouvez en apprendre plus en suivant le cours de Test Automation University destiné à selenium avec python. Merci et à bientôt 🎉🎉😉

Software Test Engineer | Test Automation & Quality Assurance Enthusiast

Software Test Engineer | Test Automation & Quality Assurance Enthusiast