我正在使用 Python 处理 Selenium 自动化项目 。
我面临一个问题,即处理多个浏览器窗口。
场景如下。当我单击主页上的链接时,会打开一个新窗口。在新打开的窗口中我无法执行任何操作,因为焦点仍在主页 web 驱动程序上。
谁能告诉我如何将焦点从背景窗口更改为新打开的窗口?
一个可能的解决方案是 driver.switch_to.window()
,但它需要窗口的名称。如何找出窗口的名称?如果这是一种错误的方式来执行此操作,有人可以提供一些代码示例来执行此操作吗?
最佳答案
您可以使用 window_handles
和 switch_to_window
方法来完成。
在单击链接之前,首先将窗口句柄存储为
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()
关于python - 如何在 Selenium for Python 中切换到新窗口?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10629815/