zoukankan      html  css  js  c++  java
  • selenium3+python-多窗口、句柄(handle)

    一、获取当前窗口句柄

        1.元素有属性,浏览器的窗口其实也有属性的,只是你看不到,浏览器窗口的属性用句柄(handle)来识别。

        2.人为操作的话,可以通过眼睛看,识别不同的窗口点击切换。但是脚本没长眼睛,它不知道你要操作哪个窗口,这时候只能句柄来判断了。

        3.获取当前页面的句柄:driver.current_window_handle

    二、获取所有句柄

        1.定位拉钩网招聘产品经理,并点击

        2.点击后,获取当前所以的句柄:window_handles

    三、切换句柄

    方法一:

        1.循环判断是否与首页句柄相等

        2.如果不等,说明是新页面的句柄

        3.获取的新页面句柄后,可以切换到新打开的页面上

        4.打印新页面的title,看是否切换成功

    方法二:

        1.直接获取all_hand这个list数据里面第二个hand的值:all_hand[1]

    四、关闭新窗口,切回主页

        1.打开新页面后,其实只想验证新页面跳转对不对,这里可以做个简单的验证,获取当前页面的title验证

        2.验证完后切关闭新窗口

        3.切回句柄到首页

        4.打印当前页面的句柄,看是否切换到首页了

    from selenium import webdriver
    driver = webdriver.Chrome()
    driver.get("https://www.lagou.com/")
    #关闭切换城市
    driver.find_element_by_id("cboxClose").click()
    driver.implicitly_wait(10)
    #获取当前窗口的句柄
    hand = driver.current_window_handle
    print(hand)
    #点击产品经理打开新的标签
    driver.find_element_by_link_text("产品经理").click()
    #获取所有句柄
    all_hand = driver.window_handles
    print(all_hand)

    #切换句柄
    #判断当前的句柄不等于首页就切换
    for item in all_hand:
    if item != hand:
    driver.switch_to_window(item)
    print(driver.title)

    #方法二,直接在list中切换
    driver.switch_to_window(all_hand[1])
    print(driver.title)

    #关闭新窗口
    driver.close()

    #切换首页
    driver.switch_to_window(hand)
    #打印当前的title
    print(driver.title)

  • 相关阅读:
    Smali基本语法
    图片智能缩小
    How to install ia32-libs in Ubuntu 14.04 LTS (Trusty Tahr)
    [操作系统][Ubuntu 14.04] 安装Flash 安装QQ2013
    eclipse在Ubuntu 13.04下的安装过程及问题小记
    Android系统手机端抓包方法
    Android 开源框架ActionBarSherlock 和 ViewPager 仿网易新闻客户端
    试用Android Annotations
    Android Annotations 介绍
    盘点国内Android移动广告平台的现状
  • 原文地址:https://www.cnblogs.com/Teachertao/p/10970296.html
Copyright © 2011-2022 走看看