Heim  >  Artikel  >  Backend-Entwicklung  >  Wie wechsle ich in Selenium für Python zu einem neuen Fenster?

Wie wechsle ich in Selenium für Python zu einem neuen Fenster?

DDD
DDDOriginal
2024-11-08 13:00:02159Durchsuche

How to Switch to a New Window in Selenium for Python?

Wechsel zu neuen Fenstern in Selenium für Python

In Selenium für Python kann die Handhabung mehrerer Browserfenster eine Herausforderung darstellen. Wenn nach dem Klicken auf einen Link ein neues Fenster geöffnet wird, bleibt der Fokus auf dem ursprünglichen Fenster und verhindert, dass Aktionen im neuen Fenster ausgeführt werden. Um dieses Problem zu beheben, müssen Sie den Fokus des Treibers auf das neue Fenster verlagern.

Bestimmen des Fensternamens

Die Methode „driver.switch_to.window()“ erfordert die Name des Fensters. Selenium bietet jedoch keine direkte Möglichkeit, diesen Namen zu erhalten. Stattdessen können Sie das Attribut window_handles verwenden, um eine Liste von Fensterhandles zu erhalten, bei denen es sich um eindeutige Bezeichner handelt.

Fokus auf das neue Fenster wechseln

Hier sind die Schritte dazu So wechseln Sie den Fokus auf das neue Fenster:

  1. Bevor Sie auf den Link klicken, speichern Sie das aktuelle Fensterhandle als window_before.
  2. Speichern Sie nach dem Klicken auf den Link das Fensterhandle des neuen Fensters als window_after.
  3. Verwenden Sie die Methode switch_to.window(), um zum neuen Fenster zu wechseln: drivers.switch_to.window(window_after).

Beispielcode

Der folgende Python-Code veranschaulicht, wie man mit mehreren Browserfenstern umgeht und den Fokus auf das neue Fenster wechselt:

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

Das obige ist der detaillierte Inhalt vonWie wechsle ich in Selenium für Python zu einem neuen Fenster?. 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