Selenium-多窗口处理
Posted 会跑的熊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Selenium-多窗口处理相关的知识,希望对你有一定的参考价值。
弹出新的窗口,该如何处理
1.获取当前窗口句柄
2.元素的操作,打开新的窗口
3.获取所有窗口句柄
4.for循环遍历所有窗口,定位到需要操作的窗口上
和你当前句柄不一样的就说明是新的,通过打印title来判断
实例:打开了新的窗口
\'\'\' 多窗口处理 访问火狐主页,之后再新窗口访问微博 \'\'\'
#! /usr/bin/env python #coding=utf-8 from selenium import webdriver import time \'\'\' 多窗口处理 访问火狐主页,之后再新窗口访问微博 \'\'\' driver = webdriver.Firefox() driver.get("http://i.firefoxchina.cn/?from=worldindex") #driver.maxmize_window() #获取当前窗口句柄 curr_handle = driver.current_window_handle print("curr_handle=",curr_handle) time.sleep(5) #新打开的窗口 driver.find_element_by_link_text("微 博").click() #获取所有窗口句柄 all_handles = driver.window_handles #遍历所有窗口句柄,和你当前句柄不一样的就说明是新的,通过打印title来判断 for h in all_handles: if h != curr_handle: #跳转到h窗口 driver.switch_to_window(h) #获取到新窗口的句柄 curr_handle = driver.current_window_handle print("curr_handle=",curr_handle) time.sleep(5) driver.quit()
结果:
curr_handle= {5a0d739b-6d2f-4130-b3fd-c8c04a7bf89b}
curr_handle= {b7957d2c-7682-4095-85bb-2a500d472bcc}
以上是关于Selenium-多窗口处理的主要内容,如果未能解决你的问题,请参考以下文章