Maison  >  Article  >  développement back-end  >  Comment basculer entre plusieurs fenêtres de navigateur à l'aide de Selenium en Python ?

Comment basculer entre plusieurs fenêtres de navigateur à l'aide de Selenium en Python ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-09 03:27:01770parcourir

How to Switch Between Multiple Browser Windows Using Selenium in Python?

Comment 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn