如何操作页面多个窗口?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何操作页面多个窗口?相关的知识,希望对你有一定的参考价值。

亲是不是说的浏览器页面多个窗口 如果是在打开IE浏览器后,看到左上或右上都会有几个菜单选项,其中都会有“工具”菜单
点击一下“工具”菜单,都会在最后一项显示“Internet 选项”:
看到Internet 选项页面,在常规这栏下面有个“选项卡”的分类,其中有“设置”按钮,点击设置。
在选项卡浏览设置里,看到“遇到弹出窗口时”这个分类,默认是选择第二个在新窗口打开的,但现在我们需要选择第三个选项“始终在新选项卡中打开弹出窗口(T)”
然后分别确定设置得以保存。再打开网页的一些链接,就可以得到在同一个窗口中打开多个网页的功能。希望帮到你
参考技术A 明确原理: 1) 默认情况下操作焦点在当前页。 2) 浏览网站时打开的所有页面均会被记录。 3) 在selenium中由window_handles记录(列表中是每个页面的句柄)。 4) 若想在多个页面间切换只需要选择目标页面的handle(句柄)即可。操作:1.获取已经打开页面的所有句柄。handles = driver.window_handles2.通过句柄进入窗口driver.switch_to.window(handles[0])3.获取当前句柄driver.current_handle我在学相关内容的时候看的是黑马程序员的社区,你也可以看看相关内容,很多老师整理出来的技术文章。对自学非常有帮助; 参考技术B 明确原理: 1) 默认情况下操作焦点在当前页。 2) 浏览网站时打开的所有页面均会被记录。 3) 在selenium中由window_handles记录(列表中是每个页面的句柄)。 4) 若想在多个页面间切换只需要选择目标页面的handle(句柄)即可。操作:1.获取已经打开页面的所有句柄。handles = driver.window_handles2.通过句柄进入窗口driver.switch_to.window(handles[0])3.获取当前句柄driver.curren有什么问题欢迎询问,祝您工作顺利、身体健康, 参考技术C 明确原理: 1) 默认情况下操作焦点在当前页

句柄的获取和切换

问题:

多个窗口时,该如何识别想操作的窗口,操作页面元素呢?

例如点击一个link属性的文字,跳出新窗口,如何定位新窗口以及操作

分析:

代码:

#coding:utf-8
from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.get("http://bj.ganji.com/")
time.sleep(3)
#获取第一个窗口的句柄
handle1=driver.current_window_handle
#打印第一个句柄
print(handle1)
#打印第一个窗口的标题
print(driver.title)
#打印第一个句柄的数据类型
print(type(handle1))

#点击小本创业
driver.find_element_by_link_text(u"小本创业").click()

#获取所有窗口句柄,用列表形式展示
handles=list(driver.window_handles)
print(handles)
#打印所有窗口句柄
print(type(handles))

#获取新窗口的句柄
handle2=handles[1] #获取所有句柄,从0开始,第二个窗口句柄为1

#切换至新窗口
driver.switch_to.window(handle2)
time.sleep(2)
#打印当前窗口的标题
print(driver.title)
#关闭当前的窗口
driver.close()
#返回至第一个窗口上
driver.switch_to.window(handles[0])
time.sleep(2)
#打印当前窗口的标题
print(driver.title)
driver.quit()

 


以上是关于如何操作页面多个窗口?的主要内容,如果未能解决你的问题,请参考以下文章

页面存在多个url,但是仅ID不同,但是此时用jmeter操作同时访问多个url

emWin 2天速成实例教程002_多个页面窗口切换

如何对 Streaming DataFrame 执行多个时间窗口操作?

怎么能在网页自动登录,然后点击修改某个页面,这样循环多个账号

具有多个意图的 PyQt5(同一窗口中的页面)

如何解决Selenium句柄多窗口问题