首頁 >後端開發 >Python教學 >如何在 Selenium for Python 中切換到新視窗?

如何在 Selenium for Python 中切換到新視窗?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-09 08:35:02520瀏覽

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

在Selenium for Python 切換到新視窗

在使用Python 的Selenium 自動化中,處理多個瀏覽器視窗是一項常見任務。當您按一下開啟新視窗的連結時,焦點仍保留在原始視窗上,從而阻止在新視窗中執行操作。

要將焦點從後台視窗切換到新開啟的窗口,您可以使用 driver.switch_to.window() 方法。但是,這需要知道視窗的名稱。

尋找視窗的名稱

要擷取視窗的名稱,您可以使用 window_handles 屬性。它傳回目前活動視窗句柄的清單。在點擊連結之前,可以儲存原始視窗的視窗句柄:

window_before = driver.window_handles[0]

點擊連結後,可以取得新視窗的視窗句柄:

window_after = driver.window_handles[1]

切換到新視窗

取得視窗句柄後,您可以使用switch_to.window()方法切換到新視窗:

driver.switch_to.window(window_after)

現在,焦點位於新視窗上,可讓您執行點擊元素和導覽頁面等操作。

程式碼範例

以下程式碼示範如何切換到Selenium for Python 中的新視窗:

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

以上是如何在 Selenium for Python 中切換到新視窗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn