首页 >后端开发 >Python教程 >如何使用 Python 在 Selenium 中的多个浏览器窗口之间切换?

如何使用 Python 在 Selenium 中的多个浏览器窗口之间切换?

Susan Sarandon
Susan Sarandon原创
2024-11-08 00:53:02524浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn