在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中文網其他相關文章!