📌  相关文章
📜  driver.getwindowhandle() 和 driver.getwindowhandles() 之间的区别 (1)

📅  最后修改于: 2023-12-03 14:40:52.465000             🧑  作者: Mango

driver.getwindowhandle()driver.getwindowhandles() 的区别

driver.getwindowhandle()driver.getwindowhandles() 是 WebDriver API 中用于获取窗口句柄的方法。窗口句柄是用来唯一标识一个浏览器窗口的字符串。下面是它们的主要区别:

  1. driver.getwindowhandle():

    • 作用:返回的是当前活动窗口的句柄。
    • 返回类型:字符串。
    • 使用场景:当浏览器只有一个窗口时使用,或者当前操作只涉及到单个窗口的情况下使用。
    • 代码示例:
      # 获取当前活动窗口的句柄
      current_window = driver.getwindowhandle()
      
  2. driver.getwindowhandles():

    • 作用:返回的是所有打开窗口的句柄的集合。
    • 返回类型:集合或列表。
    • 使用场景:当浏览器有多个窗口时使用,或者需要在多个窗口间切换操作时使用。
    • 代码示例:
      # 获取所有打开窗口的句柄
      all_windows = driver.getwindowhandles()
      

在实际应用中,我们通常先使用 driver.getwindowhandles() 获取到所有窗口的句柄集合,然后可以根据需要通过循环或索引来切换不同的窗口,最后再使用 driver.getwindowhandle() 获取当前操作窗口的句柄。

例如,想要切换到某个新打开的窗口并操作其中的元素,可以使用以下代码示例:

# 获取所有打开窗口的句柄
all_windows = driver.getwindowhandles()

# 切换到第二个窗口
driver.switch_to.window(all_windows[1])

# 在第二个窗口中进行操作
# ...

# 切换回第一个窗口
driver.switch_to.window(all_windows[0])

这样,通过合理使用 driver.getwindowhandle()driver.getwindowhandles() 可以方便地处理多个浏览器窗口之间的操作。