 切换浏览器窗口⭐
切换浏览器窗口⭐
  - driver.window_handles获取打开的所有窗口句柄,是一个列表。 - 所谓句柄(handles),就是窗口的唯一标识,系统通过窗口的句柄来区分不同的窗口。 
- 列表中每个窗口句柄的出现顺序是窗口的启动顺序,所有最后启动的那个窗口的句柄就是列表最后一个成员(索引号是-1) 
 
- 切换到最新窗口的步骤: - list1=driver.window_handles
- driver.switch_to.window(list1[-1])
 
- 获得当前窗口句柄 - driver.current_window_handle
 
- 关闭窗口有两种方法: - driver.quit0→关闭本次运行期间所启动的所有浏览器窗口,退出驱动程序,一般用于程序末尾,测试结束时使用。 
- driver.close(0→关闭当前一个浏览器窗口,保留其他浏览器窗口,一般用于业务步骤之间,属于一个测试中间的操作步骤。 
 
- 所有的操作只针对当前窗口: - 比如close只关闭当前一个窗口,find_element查找元素只在当前窗口里查找。
 
- 没有执行窗口切换的代码时,当前窗口就是最初启动的窗口。 
- 当前窗口已经被关闭以后,不会自动切换到其他窗口 - 就算其他窗口只有一个,也不会自动变为当前窗口。
 
- NoSuchWindowException异常原因: - 当前窗口已经被关闭,或要切换到的目标窗口句柄不正确。
 
driver.find_element(By.LINK_TEXT,"EC").click()#打开一个新窗口
a=driver.current_window_handle#获取当前窗口句柄
Lst1=driver.window_handles#获取所有窗口句柄
driver.switch_to.window(lst1[-1])#切换到最新窗口
driver.find_element(By.LINK_TEXT,"ECShop ").click()#新窗口
Lst2=driver.window_handles
driver.switch_to.window(lst2[-1])#切换到最新窗口
driver.close()#关闭当前窗口
driver.switch_to.window(a)#切换到最初窗口
- 切换窗口语法总结: - driver.current_window_handle→获得当前浏览器窗口句柄 
- driver.windows_handles→获得所有浏览器窗口句柄(List) 
- driver.switch_to.window(窗口句柄)→切换到特定窗口 
- driver.close()→关闭当前一个浏览器窗口 
- driver.quit()→关闭所有浏览器窗口 
 
上次更新: 2025/5/2 14:40:28
