Heim > Artikel > Backend-Entwicklung > Wie wechselt man in Selenium für Python zu einem neuen Fenster?
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!