首頁 > 後端開發 > Python教學 > 如何使用 Python 在 Selenium 中的多個瀏覽器視窗之間切換?

如何使用 Python 在 Selenium 中的多個瀏覽器視窗之間切換?

Susan Sarandon
發布: 2024-11-08 00:53:02
原創
528 人瀏覽過

How to Switch Between Multiple Browser Windows in Selenium with Python?

如何使用Python 在Selenium 中處理多個瀏覽器視窗

使用Selenium 自動化時,您可能會遇到出現多個瀏覽器視窗的情況。由於焦點保留在第一個開啟的視窗上,因此在後續視窗中導航或執行操作變得具有挑戰性。為了解決這個問題,一個關鍵方法是 driver.switch_to.window()。

定位視窗名稱

與 driver.switch_to.window( ) 需要視窗名稱,它適用於視窗句柄。可以使用 window_handles 屬性來決定視窗句柄。

如何切換到新窗口

要將焦點切換到新打開的窗口,請按照以下步驟操作:

  1. 在點擊觸發新視窗的連結之前,使用以下方法記錄目前視窗句柄:
window_before = driver.window_handles[0]
登入後複製
  1. 點擊連結後,擷取視窗句柄新視窗:
window_after = driver.window_handles[1]
登入後複製
  1. 利用switch_to.window(window_handle) 方法定向焦點:
driver.switch_to.window(window_after)
登入後複製

範例

考慮以下在多個視窗之間導覽的程式碼:

import unittest
from selenium import webdriver

class WindowHandling(unittest.TestCase):

    def setUp(self):
        self.driver = webdriver.Firefox()

    def test_window_switch(self):
        driver = self.driver
        driver.get("http://www.cdot.in")
        window_before = driver.window_handles[0]
        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)
        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()
登入後複製

以上是如何使用 Python 在 Selenium 中的多個瀏覽器視窗之間切換?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板