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

Wie wechselt man in Selenium für Python zu einem neuen Fenster?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-09 08:35:02450Durchsuche

How do you switch to a new window in Selenium for Python?

Wechseln zu einem neuen Fenster in Selenium für Python

Bei der Selenium-Automatisierung mit Python ist die Handhabung mehrerer Browserfenster eine häufige Aufgabe. Wenn auf einen Link geklickt wird, der ein neues Fenster öffnet, bleibt der Fokus auf dem ursprünglichen Fenster und verhindert, dass Aktionen im neuen Fenster ausgeführt werden.

Um den Fokus vom Hintergrundfenster auf das neu geöffnete Fenster zu verlagern, müssen Sie kann die Methode „driver.switch_to.window()“ verwenden. Dazu muss jedoch der Name des Fensters bekannt sein.

Den Namen des Fensters ermitteln

Um den Namen des Fensters abzurufen, können Sie die Eigenschaft window_handles verwenden. Es gibt eine Liste der aktuell aktiven Fensterhandles zurück. Das Fensterhandle für das Originalfenster kann vor dem Klicken auf den Link gespeichert werden:

window_before = driver.window_handles[0]

Nach dem Klicken auf den Link kann das Fensterhandle für das neue Fenster abgerufen werden:

window_after = driver.window_handles[1]

Zum neuen Fenster wechseln

Sobald Sie die Fenstergriffe haben, können Sie mit switch_to.window() zum neuen Fenster wechseln Methode:

driver.switch_to.window(window_after)

Jetzt liegt der Fokus auf dem neuen Fenster, in dem Sie Aktionen wie das Klicken auf Elemente und das Navigieren auf der Seite ausführen können.

Codebeispiel

Der folgende Code zeigt, wie man in Selenium für Python zu einem neuen 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 wechselt man 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