第十一节:多窗口切换
来源:互联网 发布:数据采集方法 编辑:程序博客网 时间:2024/06/05 05:38
有时候需要在不同的窗口切换, 从而操作不同的窗口上的元素 。
WebDriver 提供了 switch_to_window()方法可以切换到任意的窗口.
current_window_handle 获得当前窗口句柄
window_handles 返回的所有窗口的句柄到当前会话
switch_to_window():用于切换到相应的窗口,与上一节的switch_to_frame() 是类似,前者用于不同窗口的切换,后者用于不同表单之间的切换。
举例:
同一浏览器不同标签页的切换
方法一:在同一浏览器的不同标签页中切换--同样是通过switch_to.window()方法
该方法是Webdriver中内置的一个方法,除了在多个浏览器中作切换用,单个浏览器多个标签(Tab)之间的切换也可以用这个方法,思路就是先取得所有标签的句柄,然后循环遍历并判断是否是当前标签页,如果不是则切换。详细代码如下:
# encoding:utf-8
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
driver.find_element_by_id("setf").click()
handles = driver.window_handles
for handle in handles:
if driver.current_window_handle != handle:
driver.switch_to.window(handle)
driver.find_element_by_link_text("百度首页").click()
最后一句点击新标签上的“百度首页”链接操作成功即代表已成功切换标签。
方法二:利用JS清除target值
用F12工具查看该超链接,可以查看到有一个target属性:
target=_blank意思是在新窗口中打开被链接文档(引自w3school),通俗点解释就是超链接会用过新窗口(新标签)打开,那么将其值清除 便可实现点击该超链接后不会另起一个新标签页。利用Document 对象方法查找该id然后将其target的值清除:
js = 'document.getElementById("setf").target="";'
JS写完之后执行它,即可达到效果。完整代码如下:
# encoding:utf-8
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
js = 'document.getElementById("setf").target="";'
driver.execute_script(js)
driver.find_element_by_id("setf").click()
driver.find_element_by_link_text("百度首页").click()
最后一句点击新标签上的“百度首页”链接操作成功即代表已成功切换标签。
- 第十一节:多窗口切换
- php学习 第十一节
- 第十一节 串口通信
- 第十一节 Trait进阶
- 第三章 第十一节 总结
- 第十一节,命名空间namespace
- 第十一节 逻辑操作符
- 第十一节 进程间通信
- OC学习第十一节Json
- js第十一节-字符串方法
- 第十一节下篇:Object类
- 第十一节 搭建邮件服务器
- 第十一节:元组 Tuple3
- RH124-第十一节-系统日志
- 汇编第十一节-标志寄存器
- 多窗口快捷切换
- Vim 多窗口切换
- Vim 多窗口切换
- 我的编程习惯
- activiti 工作流会签 / 多人审批时一人通过也可 / 在当前节点获取下一节点的信息 / 流程部署之后发布之前获取所有节点的信息 / 流程启动开始之前传送之后节点办理人 / 同一结点设置多个监听
- [Leetcode] 388. Longest Absolute File Path 解题报告
- Activiti进阶(一)——HelloWorld
- Hadoop格式化HDFS报错java.net.UnknownHostException: centos0
- 第十一节:多窗口切换
- 文章标题
- python 中model.py详解
- 【PHP】wamp集成环境下PHPStorm安装XDebug插件
- mybatis知识点
- Unity中贴图报错
- Pointers on C——7 Functions.9
- tf API 研读2:math
- http协议,servert编程的基础知识