python-web自动化测试-多窗口切换handle

一、窗口句柄

  1. handle,窗口句柄,是一个字符串,是浏览器窗口的唯一识别码
  2. 当超链接包含属性target=”_blank”时,点击就会在新的窗口打开
  3. 当新的窗口打开网页时,浏览器会给新窗口随机分配一个handle

二、切换窗口的方法    

  1. 获取当前窗口句柄:driver.current_window_handle
  2. 获取所有窗口句柄:driver.window_handles
  3. 切换到指定窗口:driver.switch_to.window(handle)

 三、切换窗口的思路

        (1)在当前页面获取当前的窗口句柄handle1,是一个字符串

        (2)然后点击链接打开新窗口,获取所有句柄handles,是一个列表

# 获取当前的窗口句柄
current_handle = driver.current_window_handle
print("百度首页的窗口句柄是:",current_handle, type(current_handle))
# 在【更多】上悬停鼠标
more = driver.find_element_by_link_text("更多")
action.move_to_element(more).perform()
# 点击音乐
driver.find_element_by_link_text("音乐").click()
# 获取所有窗口句柄
handles = driver.window_handles
print("所有的窗口句柄是:",handles,type(handles))

        (3)方案1:根据索引获取新窗口的句柄       

# 切换到新窗口--根据索引获取新窗口句柄
driver.switch_to.window(handles[1])

        (4)方案2:for循环遍历列表元素,如果某一个元素的值不等于当前窗口句柄handle,那么它就是新窗口的句柄

# 遍历获取新句柄
for handle in handles:
    # 判断是否等于当前窗口的句柄
    if handle != current_handle:
        handles_music = handle
        # 切换窗口
        driver.switch_to.window(handles_music)

        (5)根据新窗口的句柄切换窗口,进行操作

猜你喜欢

转载自blog.csdn.net/chengdiyiyo/article/details/121101530