如何在 Selenium for Python 中切换到新窗口?

2024-01-22

我正在研究硒自动化项目使用Python。

我面临一个问题,即处理多个浏览器窗口。

场景如下。当我单击主页上的链接时,会打开一个新窗口。在新打开的窗口中,我无法执行任何操作,因为焦点仍在主页 Web 驱动程序上。

谁能告诉我如何将焦点从背景窗口更改为新打开的窗口?

一个可能的解决方案是driver.switch_to.window(),但它需要窗口的名称。如何找到窗口的名称?如果这是一种错误的方法,任何人都可以提供一些代码示例来执行此操作吗?


你可以通过使用来做到这一点window_handles and switch_to.window method.

在单击链接之前,首先将窗口句柄存储为

window_before = driver.window_handles[0]

单击链接后,将新打开的窗口的窗口句柄存储为

window_after = driver.window_handles[1]

然后执行切换到窗口方法移动到新打开的窗口

driver.switch_to.window(window_after)

同样,您可以在新旧窗口之间切换。以下是代码示例

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()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Selenium for Python 中切换到新窗口? 的相关文章

随机推荐