1. Ouverture de pages web : premiers pas
Si tu as toujours rêvé de devenir le maître des pages web, tu es au bon endroit. Aujourd'hui, nous allons ouvrir des pages web avec Selenium et apprendre à interagir avec elles. Imagine que tu diriges un navigateur comme un chef d'orchestre, sauf que l'orchestre, c'est Internet, et que la partition, c'est du code Python. Allons-y et lançons notre concert !
Avant de pouvoir interagir avec une page web, il faut d'abord l'ouvrir, non ? C'est comme entrer dans une bibliothèque avant de chercher un livre. En Selenium, ouvrir des pages web se fait avec un navigateur driver. Pour l'instant, nous supposons que tu as déjà installé Selenium et le driver correspondant (par exemple, ChromeDriver ou GeckoDriver). Si tu as suivi le cours précédent, tu sais déjà comment faire. Sinon, retourne lire la précédente conférence.
Voyons comment commencer avec l'ouverture simple d'une page web :
from selenium import webdriver
# Créons une instance de driver pour Chrome
driver = webdriver.Chrome()
# Ouvrons une page web
driver.get('https://www.example.com')
# Affichons le titre de la page dans la console
print(driver.title)
# Fermons le navigateur
driver.quit()
Ce qui se passe dans le code :
- On importe webdriver : C'est le cœur de Selenium, permettant de contrôler le navigateur.
- On crée un driver : Ici, on crée un objet driver pour Chrome. Cela peut être n'importe quel navigateur pour lequel tu as un driver.
-
On ouvre une page : La méthode
get()
charge la page désignée par une URL. -
On récupère le titre : Avec
driver.title
, on peut afficher le titre de la page en cours. -
On ferme le navigateur : La méthode
quit()
met fin à l'utilisation du navigateur.
Voilà, on a ouvert notre première page web ! C'est le premier pas vers la domination du monde... euh... je voulais dire, vers l'automatisation !
2. Navigation et travail avec les onglets
Ouvrir une page ne suffit pas. Souvent, il faut naviguer entre les pages ou même ouvrir plusieurs onglets. Imagine-toi comme un voyageur qui peut se téléporter instantanément entre les lieux. Avec Selenium, c'est possible.
Navigation entre pages
Passer d'une page à une autre est aussi simple que de l'ouvrir :
# Navigation vers une autre page
driver.get('https://www.example.org')
# Méthode back() pour revenir à la page précédente
driver.back()
# Méthode forward() pour aller de l'avant
driver.forward()
Travailler avec les onglets
Et ouvrir un nouvel onglet ? C'est comme visiter des bibliothèques dans différentes villes avec ton propre ordinateur portable !
# On ouvre un nouvel onglet et on bascule dessus
driver.execute_script("window.open('https://www.example.com', '_blank');")
driver.switch_to.window(driver.window_handles[1])
# On retourne au premier onglet
driver.switch_to.window(driver.window_handles[0])
Explications :
-
execute_script()
: Utilisé pour exécuter du code JavaScript dans le navigateur. Ici, on ouvre un nouvel onglet. -
switch_to.window()
: Cette méthode permet de basculer entre les onglets. On utilisewindow_handles
pour accéder à la liste de tous les onglets ouverts.
3. Interaction avec une page web
Maintenant que nous savons ouvrir et naviguer entre les pages, passons à l'interaction directe avec elles — comme un vrai dev ! C'est comme apprendre à danser avec chaque page web et le faire avec style.
Interface d'interaction
Prenons un exemple pour interagir avec des éléments sur une page. Par exemple, trouver un champ texte et y insérer du texte :
# On trouve l'élément par son nom
search_box = driver.find_element_by_name('q')
# On insère du texte dans le champ texte trouvé
search_box.send_keys('Selenium Python')
# On trouve le bouton de recherche et on clique dessus
submit_button = driver.find_element_by_name('btnK')
submit_button.click()
Explications :
-
find_element_by_name()
: Méthode utilisée pour trouver un élément par son nom. Ici, on cherche une barre de recherche. -
send_keys()
: Permet d'insérer du texte dans l'élément trouvé. -
click()
: Utilisé pour simuler un clic sur un élément, comme un bouton.
Méthodes supplémentaires
Pour des interactions plus complexes avec des éléments, il existe de nombreuses méthodes. Consulte la documentation de Selenium pour en apprendre davantage. Ici, nous allons passer en revue quelques bases.
-
find_element_by_id()
: Trouve un élément par son ID. -
find_element_by_class_name()
: Trouve un élément par son classe CSS. -
find_element_by_css_selector()
: Utilise des sélecteurs CSS pour rechercher un élément.
Maintenant, tu peux ouvrir et explorer des pages comme un véritable aventurier du web ! N'aie pas peur d'expérimenter et de tenter de nouvelles choses. Comme on dit, "les erreurs sont les marches vers le succès", surtout si tu es sûr que ton code est fiable et testé !
Erreurs fréquentes
Travailler avec Selenium peut ressembler à marcher dans un champ de mines si tu ne connais pas les pièges courants. Une des erreurs les plus fréquentes est d'oublier de terminer la session du navigateur. Cela peut entraîner des processus de navigateur suspendus en mémoire. N'oublie jamais d'utiliser
driver.quit()
à la fin de ton script.
Une autre douleur pour un développeur Selenium, ce sont les modifications des structures des pages web. Si un élément a été trouvé via un sélecteur et que le développeur du site a modifié la structure HTML, ton script cessera soudainement de fonctionner. C'est comme si une porte se fermait juste devant toi quand tu essaies de rentrer dans une pièce. Il est important d'écrire du code flexible et de le mettre à jour régulièrement en fonction des changements sur le site.
GO TO FULL VERSION