Maison > Article > développement back-end > Comment basculer entre plusieurs fenêtres de navigateur à l'aide de Selenium en 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!