zoukankan      html  css  js  c++  java
  • Python+webdriver脚本之多窗口切换新解

    #-*-coding:utf-8-*-
    from selenium import webdriver
    import time
    x = webdriver.Chrome()
    x.maximize_window()
    x.get("http://www.hao123.com")
    x.find_element_by_link_text("人民网").click()
    x.find_element_by_link_text("新华网").click()
    x.find_element_by_link_text("中国日报").click()
    x.find_element_by_link_text("光明网").click()
    handles = x.window_handles#获取所有窗口句柄
    x.switch_to.window(handles[0])#切换到索引为0的窗口句柄,注意:hao123的句柄索引为0
    print(x.title)
    x.switch_to.window(handles[1])#切换到句柄索引为1的窗口,注意:最后打开的窗口句柄索引为1,中间依次类推
    print(x.title)
    x.switch_to.window(handles[2])#切换到句柄索引为2的窗口
    print(x.title)
    x.switch_to.window(handles[3])#切换到句柄索引为3的窗口
    print(x.title)
    x.switch_to.window(handles[4])#切换到句柄索引为4的窗口
    print(x.title)
    x.close()#此处关闭了切换到的句柄索引为4的窗口
    x.switch_to.window(handles[0])#切换到索引为0的窗口句柄
    print(x.title)
    x.switch_to.window(handles[3])#切换到句柄索引为3的窗口
    print(x.title)
    x.switch_to.window(handles[2])#切换到句柄索引为2的窗口
    print(x.title)
    x.switch_to.window(handles[1])#切换到句柄索引为1的窗口
    print(x.title)
    '''
    关闭索引号为4的窗口页签,并未对下面打印0-3的页签产生影响
    '''
    x.close()#此处关闭的是切换到的句柄索引为1的窗口
    x.switch_to.window(handles[0])#切换到索引为0的窗口句柄
    print(x.title)
    x.switch_to.window(handles[2])#切换到句柄索引为2的窗口
    print(x.title)
    x.switch_to.window(handles[3])#切换到句柄索引为1的窗口
    print(x.title)
    '''
    注意:上面取的是handles中的索引,handles中的索引号有0-4,关闭
    索引号为4的窗口页签,并未对后面打印0-3的页签产生影响,但是关闭了
    索引号为1的窗口页签,存在handles中的每个页签对应的索引号并未发
    生变化,并没有因为索引为1的页签关闭而将剩余的索引变化为0-3,而是
    0,2,3,而这时候如果打印索引为1的页签标题会报错,我们想要重新将索
    引号排序,就需要重新获取所有句柄.
    '''
    time.sleep(3)
    handles2 = x.window_handles#重新获取句柄
    x.switch_to.window(handles2[0])#切换到索引为0的窗口句柄
    print(x.title)
    x.switch_to.window(handles2[2])#切换到句柄索引为2的窗口
    print(x.title)
    x.switch_to.window(handles2[1])#切换到句柄索引为1的窗口
    print(x.title)
    print("运行完毕")
    ================
    运行结果如下:
     
  • 相关阅读:
    关于软件生命周期以及软件过程
    尴尬!Jsp内置对象
    软件工程导论的课后作业
    Bing Maps进阶系列五:通过DeepEarth的MiniMap控件为Bing Maps扩展迷你小地图
    Bing Maps进阶系列四:路由功能服务(RouteService)
    Bing Maps进阶系列三:使用地图图像服务(ImageryService)
    Bing Maps进阶系列二:使用GeocodeService进行地理位置检索
    Bing Maps进阶系列一:初识Bing Maps地图服务
    在C#中实现listbox的项上下移动(winform) 标准
    C# LIstbox 解决WinForm下ListBox控件“设置DataSource属性后无法修改项集合”的问题
  • 原文地址:https://www.cnblogs.com/yaoze2018/p/10390727.html
Copyright © 2011-2022 走看看