Heim  >  Artikel  >  Backend-Entwicklung  >  Wie wechselt man mit Python zwischen mehreren Browserfenstern in Selenium?

Wie wechselt man mit Python zwischen mehreren Browserfenstern in Selenium?

Susan Sarandon
Susan SarandonOriginal
2024-11-08 00:53:02444Durchsuche

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

So gehen Sie mit mehreren Browserfenstern in Selenium mit Python um

Beim Arbeiten mit der Selenium-Automatisierung kann es vorkommen, dass mehrere Browserfenster angezeigt werden. Da der Fokus weiterhin auf dem ersten geöffneten Fenster liegt, wird das Navigieren oder Ausführen von Aktionen in nachfolgenden Fenstern zu einer Herausforderung. Eine Schlüsselmethode zur Behebung dieses Problems ist „driver.switch_to.window()“.

Auffinden des Fensternamens

Im Gegensatz zu der Vorstellung, dass „driver.switch_to.window(“ ) erfordert einen Fensternamen, es funktioniert stattdessen mit Fensterhandles. Das Bestimmen des Fensterhandles kann mithilfe der Eigenschaft window_handles erfolgen.

So wechseln Sie zu einem neuen Fenster

Um den Fokus auf das neu geöffnete Fenster zu schalten, führen Sie die folgenden Schritte aus:

  1. Bevor Sie auf den Link klicken, der das neue Fenster auslöst, notieren Sie das aktuelle Fensterhandle mit:
window_before = driver.window_handles[0]
  1. Nachdem Sie auf den Link geklickt haben, rufen Sie das Handle des ab neues Fenster:
window_after = driver.window_handles[1]
  1. Verwenden Sie die Methode switch_to.window(window_handle), um den Fokus zu lenken:
driver.switch_to.window(window_after)

Beispiel

Betrachten Sie den folgenden Code, der zwischen mehreren Fenstern navigiert:

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()

Das obige ist der detaillierte Inhalt vonWie wechselt man mit Python zwischen mehreren Browserfenstern in Selenium?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn