7. 多窗口切换,获取句柄

有时候点击某个链接会打开一个新的窗口,获取窗口的唯一标识用句柄表示,以凤凰网为例:https://v.ifeng.com/

  • 获取当前窗口的句柄:driver.current_window_handle
  • 获取所有句柄: driver.window_handles
  • 切换句柄:driver.switch_to.window()
    • 循环判断句柄是否与首页句柄相等
    • 如果不相等,则说明是新的页面
    • 获取到新的句柄,切换到新打开的页面
    • 打印新页面的title,查看是否切换成功
  • from selenium  import webdriver
    import time
    driver=webdriver.Firefox()
    driver.get("https://www.ifeng.com/")
    time.sleep(3)
    #获取当前窗口的句柄
    h=driver.current_window_handle
    print(h)
    print (driver.title)
    #定位视频并打开视频页面,获取所有的句柄
    s=driver.find_element_by_css_selector("#nav > li:nth-child(2) > a:nth-child(1)").click()
    time.sleep(5) #需要增加sleep时间,以确保新窗口打开,获取新的句柄
    all_h=driver.window_handles
    print(all_h)
    #循环判断句柄是否与首页句柄相等
    for i in all_h:
        if i!=h:
            #如果不等于首页句柄,则切换到新打开的页面,并打印其title
            driver.switch_to.window(i)
            print (driver.title)
    ‘‘‘
        #验证title
        if u"视频门户" in driver.title:
            print("页面打开正常")
        else:
            print("页面打开失败")
    ‘‘‘
    #关闭窗口
    driver.close()
    #切换到首页
    driver.switch_to.window(h)
    #打印当前窗口句柄,查看是否切回首页
    print (driver.current_window_handle)

    打印的结果

    6442450945
    凤凰网
    [‘6442450945‘, ‘6442450987‘]
    凤凰视频首页-最具媒体价值的视频门户-凤凰网
    6442450945

原文地址:https://www.cnblogs.com/Arcy/p/11122996.html

时间: 2024-10-08 18:22:51

7. 多窗口切换,获取句柄的相关文章

4、多窗口切换,句柄(handle)

前言:有些页面的链接打开后,会重新打开一个窗口,对亍返种情冴,想 在新页面上操作,就得先凿换窗口了.获叏窗口的唯一标识用句柄表示, 所以叧需要凿换句柄,我们就能在多个页面上灵活自如的操作了 一.认识多窗口 1.打开https://www.hao123.com,点击“人民网”,会多出一个窗口标签,如下图: 2.我们用代码去执行点击的时候,収现界面上出现两个窗口,如下图返种情况就是多窗口了: 3.以上2个图,手工点击是 2 个标签,脚本点击就变成 2 个窗口了,脚本执行是不加载配置的, 手工点击是浏

python+selenium五:多窗口切换与获取句柄

from selenium import webdriverfrom selenium.webdriver.common.by import Byimport time driver = webdriver.Firefox()driver.get("http://bj.ganji.com/")time.sleep(3) # 1.获取句柄 # 获取当前的handle名字handle = driver.current_window_handleprint("获取到当前的handl

webdriver实现简单的窗口切换

webdriver实现简单的窗口切换,也只能是简单的,因为目前处于学习阶段,复杂的情况现在还没碰到过.之前写过关于一个小demo的总结,就有提到过在新开窗口进行操作的情况,用以下一句就可以搞定了,last代表最后一个窗口,用switch_to切换到最后一个窗口(即新开的窗口)进行操作 dr.switch_to.window dr.window_handles.last 这样一般的流程整个下来是不会有问题的,可是很死板.如果我在操作过程中开了n个窗口,并且要返回到某个窗口去进行操作那该怎么办?显然

Selenium_WebDriver_多窗口切换

摘要: 版权声明:本文为博主原创文章,转载请注明出处. 在页面操作过程中有时候点击某个链接会弹出新的窗口,这时我们如果需要操作新打开的页面,就需要将主机切换到新打开的窗口上再进行操作,比如博客园精华页的精华博文,每点击一篇就会打开一个浏览器窗口.WebDriver 提供了 switchTo().window()方法可以实现在不同的窗口之间切换. 方法 说明 switchTo().window() 原型 WebDriver window(java.lang.String nameOrHandle)

Selenium弹出新页面无法定位元素问题(Unable to locate element)--多窗口切换

最近学习到多窗口切换,在页面操作过程中有时点击某个链接会弹出新的窗口,这时需要先切换到新窗口才能对其进行操作.Webdriver提供了switch_to.window( ) 方法实现在不同窗口中切换. 查阅相关资料,得到两种方法来定位到当前页面: 方法一: browser.switch_to_window(browser.window_handles[1]) 方法二:直接定位当前最新弹出的窗口 for handle in browser.window_handles:#方法二,始终获得当前最后的

python自动化脚本初学记录之窗口切换(3)

脚本过程:打开www.baidu.com点击hao123进入hao123页面(注意:并未出现新窗口),在hao123页面分别点击"头条新闻","人民网","新华网","央视网",将会依次打开4个窗口,浏览器中一共有5个窗口,获取所有窗口句柄(使用driver.window_handles),然后使用driver.switch_to.window(handles[x])依次切换到每个窗口并打印窗口标题(页面标签),打印页面标签使

python - web自动化测试 - 元素操作 - 窗口切换

# -*- coding:utf-8 -*- ''' @project: web学习 @author: Jimmy @file: 元素操作-切换.py @ide: PyCharm Community Edition @time: 2019-01-19 10:43 @blog: https://www.cnblogs.com/gotesting/ ''' ''' windows窗口切换:切换到要操作的窗口 有多个窗口 1. 触发新窗口的出现 2. 得知道新窗口是谁 -- 依据窗口的window_h

selenium 多窗口切换

selenium 多窗口切换 知识点: 1.current_window_handle:获取当前窗口句柄 2.window_handles:返回所有窗口的句柄到当前会话 3.switch_to.window():用于切换到相应的窗口.  与switch_to.frame()类似. switch_to.window()是用于不同窗口的切换.switch_to.frame()是用于不同表单的切换. 示例; #selenium 窗口切换 from selenium import webbrowser

7 frame表单切换、多窗口切换

frame表单切换.多窗口切换 1 frame表单 frame:HTML页面中的一种框架,主要作用是在当前页面中指定区域显示另一页面元素(HTML语言中,frame/iframe标签为表单框架) 1.1 frame表单切换 说明:在WebDriver类库中封装了HTML页面中使用frame表单框架技术定位的方法 方法: 1). driver.switch_to.frame("myframe1") 切换表单方法 (myframe1:为frame表单的name或id) 2). driver