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

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

DDD
DDD原創
2024-11-08 13:00:02248瀏覽

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

在Selenium for Python 中切換到新視窗

在Selenium for Python 中,處理多個瀏覽器視窗可能會帶來挑戰。當您按一下連結後開啟新視窗時,焦點仍保留在原始視窗上,從而阻止在新視窗中執行操作。要解決這個問題,您需要將驅動程式的焦點切換到新視窗。

確定視窗的名稱

driver.switch_to.window() 方法需要視窗的名稱。但是,Selenium 不提供直接獲取此名稱的方法。相反,您可以使用 window_handles 屬性來取得視窗句柄列表,這些句柄是唯一識別碼。

將焦點切換到新視窗

以下是以下步驟如何將焦點切換到新視窗:

  1. 點擊連結前,將目前視窗句柄儲存為window_before。
  2. 點選連結後,儲存新視窗的視窗句柄as window_after.
  3. 使用switch_to.window() 方法移至新視窗: driver.switch_to.window(window_after).

範例程式碼

以下 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