


Comment basculer entre plusieurs fenêtres de navigateur à l'aide de Selenium en Python ?
Nov 09, 2024 am 03:27 AMComment gérer plusieurs fenêtres de navigateur à l'aide de Selenium en Python
Dans le vaste domaine de l'automatisation Web, il est souvent nécessaire d'interagir avec plusieurs fenêtres ou onglets du navigateur. Selenium, un framework d'automatisation de pointe, permet aux développeurs Python de relever ces défis de manière transparente.
Un scénario courant rencontré lors des tests Web est l'ouverture d'une nouvelle fenêtre de navigateur en cliquant sur un lien. Pour effectuer efficacement des actions dans la fenêtre nouvellement ouverte, nous devons détourner le focus de la fenêtre d'arrière-plan.
Trouver la poignée de la fenêtre cible
Avant de passer à la nouvelle fenêtre , nous devons identifier son handle. Cet identifiant unique représente l'instance de fenêtre spécifique. Pour récupérer les handles, nous utilisons la méthode driver.window_handles, qui renvoie une liste de tous les handles de fenêtre ouverts. Le handle de la fenêtre actuellement ciblée sera le premier élément de cette liste.
Passer à la nouvelle fenêtre
Maintenant que nous avons le handle de la fenêtre cible, nous pouvons y basculer en utilisant la méthode driver.switch_to.window(handle). Passer le handle cible déplace efficacement le focus vers la fenêtre correspondante, nous permettant d'effectuer des actions dans son contexte.
Exemple de code
Le code Python suivant illustre comment passer à une fenêtre nouvellement ouverte :
import unittest from selenium import webdriver class GoogleOrgSearch(unittest.TestCase): def setUp(self): self.driver = webdriver.Firefox() def test_google_search_page(self): driver = self.driver driver.get("http://www.cdot.in") window_before = driver.window_handles[0] print(window_before) driver.find_element_by_xpath("//a[@href='http://www.cdot.in/home.htm']").click() window_after = driver.window_handles[1] driver.switch_to.window(window_after) print(window_after) driver.find_element_by_link_text("ATM").click() driver.switch_to.window(window_before) def tearDown(self): self.driver.close() if __name__ == "__main__": unittest.main()
Dans cet exemple, nous accédons au site Web "http://www.cdot.in" et cliquons sur un lien pour ouvrir une nouvelle fenêtre. Nous récupérons ensuite les poignées des deux fenêtres et passons à celle nouvellement ouverte pour effectuer d'autres actions.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Comment utiliser la belle soupe pour analyser HTML?

Comment utiliser Python pour trouver la distribution ZIPF d'un fichier texte

Comment travailler avec des documents PDF à l'aide de Python

Comment se cacher en utilisant Redis dans les applications Django

Comment effectuer l'apprentissage en profondeur avec TensorFlow ou Pytorch?

Sérialisation et désérialisation des objets Python: partie 1

Comment implémenter votre propre structure de données dans Python
