Maison > développement back-end > Tutoriel Python > Comment basculer entre plusieurs fenêtres de navigateur dans Selenium avec Python ?

Comment basculer entre plusieurs fenêtres de navigateur dans Selenium avec Python ?

Susan Sarandon
Libérer: 2024-11-08 00:53:02
original
564 Les gens l'ont consulté

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

Comment gérer plusieurs fenêtres de navigateur dans Selenium avec Python

Lorsque vous travaillez avec l'automatisation Selenium, vous pouvez rencontrer des situations où plusieurs fenêtres de navigateur apparaissent. Comme l'accent reste mis sur la première fenêtre ouverte, naviguer ou effectuer des actions dans les fenêtres suivantes devient difficile. Pour résoudre ce problème, une méthode clé est driver.switch_to.window().

Localisation du nom de la fenêtre

Contrairement à l'idée selon laquelle driver.switch_to.window( ) nécessite un nom de fenêtre, il fonctionne plutôt sur les handles de fenêtre. La détermination du handle de fenêtre peut être obtenue à l'aide de la propriété window_handles.

Comment passer à une nouvelle fenêtre

Pour basculer le focus sur la fenêtre nouvellement ouverte, suivez ces étapes :

  1. Avant de cliquer sur le lien qui déclenche la nouvelle fenêtre, enregistrez le handle de la fenêtre actuelle en utilisant :
window_before = driver.window_handles[0]
Copier après la connexion
  1. Après avoir cliqué sur le lien, récupérez le handle du nouvelle fenêtre :
window_after = driver.window_handles[1]
Copier après la connexion
  1. Utilisez la méthode switch_to.window(window_handle) pour diriger le focus :
driver.switch_to.window(window_after)
Copier après la connexion

Exemple

Considérez le code suivant qui navigue entre plusieurs fenêtres :

import unittest
from selenium import webdriver

class WindowHandling(unittest.TestCase):

    def setUp(self):
        self.driver = webdriver.Firefox()

    def test_window_switch(self):
        driver = self.driver
        driver.get("http://www.cdot.in")
        window_before = driver.window_handles[0]
        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)
        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

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!

source:php.cn
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