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 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)相关推荐
- python 获取浏览器句柄下的网页控件,Python获取浏览器窗口句柄过程解析
句柄(handle)是C++程序设计中经常提及的一个术语.它并不是一种具体的.固定不变的数据类型或实体,而是代表了程序设计中的一个广义的概念.句柄一般是指获取另一个对象的方法--一个广义的指针,它的具 ...
- 什么叫句柄(Handle)?
句柄 是windows编程的一个关键性的概念,编写windows应用程序总是要和各种句柄打交首,所谓句柄,就是一个4字节长的唯一的数,用以标识许多不同的对象类型,由于windwos是一个多任务操作系统 ...
- 句柄Handle的含义及使用
本文转载于:https://blog.csdn.net/swordarcher/article/details/81744930 1.句柄 : 头文件:winnt.h(也可以使用windows.h头文 ...
- python windows窗口置顶_Python入门:第一个程序“Hello, world”
本文主要内容 安装Python 使用IDLE和基础交互模式 编写一个简单的程序 使用IDLE的Python shell窗口 本章将介绍Python和IDLE的下载.安装和启动过程,IDLE是Pytho ...
- python cmd 窗口 中文乱码 解决方法 (附:打印不同颜色)
python cmd 窗口 中文乱码 解决方法 (附:打印不同颜色) 参考文章: (1)python cmd 窗口 中文乱码 解决方法 (附:打印不同颜色) (2)https://www.cnblog ...
- python的运行窗口-Python初学——窗口视窗Tkinter
此篇文章是跟着沫凡小哥的视频学习的,附上学习网址:https://morvanzhou.github.io/tutorials/python-basic/ 什么是 tkinter 窗口 1.1 什么是 ...
- python怎么打开shell界面-使用IDLE的Python shell窗口实例详解
启动IDLE后会打开Python shell窗口.当键入代码 时,它会基于Python语法提供自动缩进和代码着色功能. 使用IDLE中的Python shell.代码在输入时会自动着色(基于Pytho ...
- python命令提示符窗口在哪里_详解python命令提示符窗口下如何运行python脚本
以arcgispro的python脚本为例在arcgispro自带的python窗口下运行python脚本 需求: 将arcgispro的.aprx项目包中gdb的数据源路径更换为sde数据源路径. ...
- 解决:pycharm运行程序时在Python console窗口中运行 һ����ң�������1�����
解决:pycharm运行程序时在Python c 问题: 在pycharm中右键点击run运行程序,发现没有打开run窗口运行,而是在Python console窗口中运行的. 解决方法: 打开菜单栏 ...
- python cmd窗口名字_python cmd 窗口 中文乱码 解决方法 (附:打印不同颜色)
python cmd 窗口 中文乱码 解决方法 (附:打印不同颜色) 前言 在 python 开发中,有时候想通过cmd窗口来和用户交互,比如显示信息之类的,会比自己创建 GUI 来的方便,但是随之而 ...
最新文章
- JPA相关--Annotation
- OSChina 周日乱弹 —— 比996更先进的是365工作制
- 3 年血亏 10 亿美元,Google Deepmind 出了什么问题?
- 怎么去除标题_未来健康家:怎么快速祛除甲醛
- mysql5.5多实例配置_mysql-5.5.32多实例配置
- 终于弄明白Framework 3.5为什么在IIS的ASP.NET选项找不到?
- php异步传输,php 异步处理-上传文件
- java解压中文乱码_java使用解压zip文件,文件名乱码解决方案
- 网络延长器分为哪几类?其应用领域有哪些?
- java学习(89):Charactor包装类统计
- Oracle字段增删改、添加约束
- c#养老院老人信息管理系统源码 论文_[源码和文档分享]基于JSP和MYSQL实现的学生信息管理系统...
- C++练习题:分数化简
- 使用grafana为zabbix绘制拓扑
- DNS有哪两种域名解析方式?简述这两种方式区别和特点。
- C#制作UDP协议可同时收发Winform窗体
- python公里转海里_英里和海里和公里怎么换算
- Java中的JVM关闭钩子
- 使用原生JavaScript做一个简单日历
- 测试MBP的手写功能
热门文章
- js GB2312和unicode互转
- JQuery 分割函数(split)的用法和定义
- [YTU]_2633( P3 数钱是件愉快的事)
- conv--向量的卷积和多项式乘法
- 双链表的建立、求长、定位、插入、删除、输出和释放
- 使用OpenVINO遇到No name 'IENetwork' in module 'openvino.inference_engine'解决
- 2.Ridge Regression 岭回归
- oracle游标错误,ORACLE游标与错误处理
- CCS(Code Composer Studio) 10.2.0的下载和安装(最新教程)
- git 代码强行提交