Maison > développement back-end > Tutoriel Python > 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
Libérer: 2024-11-09 03:27:01
original
841 Les gens l'ont consulté

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()
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal