一、获取当前窗口句柄

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 webdriverdriver = webdriver.Chrome()driver.get("https://www.lagou.com/")#关闭切换城市driver.find_element_by_id("cboxClose").click()driver.implicitly_wait(10)#获取当前窗口的句柄hand = driver.current_window_handleprint(hand)#点击产品经理打开新的标签driver.find_element_by_link_text("产品经理").click()#获取所有句柄all_hand = driver.window_handlesprint(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)#打印当前的titleprint(driver.title)

转载于:https://www.cnblogs.com/Teachertao/p/10970296.html

selenium3+python-多窗口、句柄(handle)相关推荐

  1. python 获取浏览器句柄下的网页控件,Python获取浏览器窗口句柄过程解析

    句柄(handle)是C++程序设计中经常提及的一个术语.它并不是一种具体的.固定不变的数据类型或实体,而是代表了程序设计中的一个广义的概念.句柄一般是指获取另一个对象的方法--一个广义的指针,它的具 ...

  2. 什么叫句柄(Handle)?

    句柄 是windows编程的一个关键性的概念,编写windows应用程序总是要和各种句柄打交首,所谓句柄,就是一个4字节长的唯一的数,用以标识许多不同的对象类型,由于windwos是一个多任务操作系统 ...

  3. 句柄Handle的含义及使用

    本文转载于:https://blog.csdn.net/swordarcher/article/details/81744930 1.句柄 : 头文件:winnt.h(也可以使用windows.h头文 ...

  4. python windows窗口置顶_Python入门:第一个程序“Hello, world”

    本文主要内容 安装Python 使用IDLE和基础交互模式 编写一个简单的程序 使用IDLE的Python shell窗口 本章将介绍Python和IDLE的下载.安装和启动过程,IDLE是Pytho ...

  5. python cmd 窗口 中文乱码 解决方法 (附:打印不同颜色)

    python cmd 窗口 中文乱码 解决方法 (附:打印不同颜色) 参考文章: (1)python cmd 窗口 中文乱码 解决方法 (附:打印不同颜色) (2)https://www.cnblog ...

  6. python的运行窗口-Python初学——窗口视窗Tkinter

    此篇文章是跟着沫凡小哥的视频学习的,附上学习网址:https://morvanzhou.github.io/tutorials/python-basic/ 什么是 tkinter 窗口 1.1 什么是 ...

  7. python怎么打开shell界面-使用IDLE的Python shell窗口实例详解

    启动IDLE后会打开Python shell窗口.当键入代码 时,它会基于Python语法提供自动缩进和代码着色功能. 使用IDLE中的Python shell.代码在输入时会自动着色(基于Pytho ...

  8. python命令提示符窗口在哪里_详解python命令提示符窗口下如何运行python脚本

    以arcgispro的python脚本为例在arcgispro自带的python窗口下运行python脚本 需求: 将arcgispro的.aprx项目包中gdb的数据源路径更换为sde数据源路径. ...

  9. 解决:pycharm运行程序时在Python console窗口中运行 һ����ң�������1�����

    解决:pycharm运行程序时在Python c 问题: 在pycharm中右键点击run运行程序,发现没有打开run窗口运行,而是在Python console窗口中运行的. 解决方法: 打开菜单栏 ...

  10. python cmd窗口名字_python cmd 窗口 中文乱码 解决方法 (附:打印不同颜色)

    python cmd 窗口 中文乱码 解决方法 (附:打印不同颜色) 前言 在 python 开发中,有时候想通过cmd窗口来和用户交互,比如显示信息之类的,会比自己创建 GUI 来的方便,但是随之而 ...

最新文章

  1. JPA相关--Annotation
  2. OSChina 周日乱弹 —— 比996更先进的是365工作制
  3. 3 年血亏 10 亿美元,Google Deepmind 出了什么问题?
  4. 怎么去除标题_未来健康家:怎么快速祛除甲醛
  5. mysql5.5多实例配置_mysql-5.5.32多实例配置
  6. 终于弄明白Framework 3.5为什么在IIS的ASP.NET选项找不到?
  7. php异步传输,php 异步处理-上传文件
  8. java解压中文乱码_java使用解压zip文件,文件名乱码解决方案
  9. 网络延长器分为哪几类?其应用领域有哪些?
  10. java学习(89):Charactor包装类统计
  11. Oracle字段增删改、添加约束
  12. c#养老院老人信息管理系统源码 论文_[源码和文档分享]基于JSP和MYSQL实现的学生信息管理系统...
  13. C++练习题:分数化简
  14. 使用grafana为zabbix绘制拓扑
  15. DNS有哪两种域名解析方式?简述这两种方式区别和特点。
  16. C#制作UDP协议可同时收发Winform窗体
  17. python公里转海里_英里和海里和公里怎么换算
  18. Java中的JVM关闭钩子
  19. 使用原生JavaScript做一个简单日历
  20. 测试MBP的手写功能

热门文章

  1. js GB2312和unicode互转
  2. JQuery 分割函数(split)的用法和定义
  3. [YTU]_2633( P3 数钱是件愉快的事)
  4. conv--向量的卷积和多项式乘法
  5. 双链表的建立、求长、定位、插入、删除、输出和释放
  6. 使用OpenVINO遇到No name 'IENetwork' in module 'openvino.inference_engine'解决
  7. 2.Ridge Regression 岭回归
  8. oracle游标错误,ORACLE游标与错误处理
  9. CCS(Code Composer Studio) 10.2.0的下载和安装(最新教程)
  10. git 代码强行提交