在平时的自动化测试时,经常会遇到从当前的页面操作后跳转到一个新打开的窗口页面。这时候就需要在新老多个窗口间进行切换了。例如我下面的例子,首先在浏览器中打开百度www.baidu.com,然后在检索框中输入需要检索的内容“selenium”,点击“百度一下”。点击百度翻译,跳转到百度翻译页面。切换句柄到百度翻译页面,关闭该页面。回到百度搜索页,关闭浏览器。

from selenium import webdriver
import time
'''
本案例主要来说明新老窗口的切换
'''driver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.baidu.com/")# 打印当前操作界面的句柄
current_handle = driver.current_window_handle
print('current_handle', current_handle)
driver.implicitly_wait(2) # 如果找到了就继续,否则2秒等待
driver.find_element_by_id("kw").send_keys("selenium") # 在搜索框中输入‘selenium’关键字
time.sleep(2) # 强制等待2秒# 获取当前打开页的所有句柄并打印,应该只有一个
all_handles = driver.window_handles
print('all_handles', all_handles)
# 找到百度一下的按钮,点击
driver.find_element_by_id("su").click()# 点击后进入新窗口,新窗口有自己的句柄
# 找到百度翻译,点击
driver.find_element_by_link_text("百度翻译").click()# 获取进入新窗口后所有的句柄,并打印当前所有的句柄,此次应该有两个了
all_handles2 = driver.window_handles
print('all_handles2', all_handles2)
driver.implicitly_wait(2)# 拿到新窗口句柄
newhandle = [handle for handle in all_handles2 if handle not in all_handles]
# 打印新窗口
print('newhandle', newhandle[0])
# 切换到新窗口
driver.switch_to.window(newhandle[0])
time.sleep(2)
# 打印新窗口的title
print('新窗口的title:', driver.title)
# 关闭当前窗口
driver.close()driver.implicitly_wait(5)
time.sleep(1)
# 切换到原窗口
driver.switch_to.window(all_handles[0])
# 打印原窗口的title和切换后的句柄
print('原有老窗口的title:', driver.title)
print(driver.current_window_handle)
# 退出关闭浏览器
driver.quit()

Python selenium新窗口和老窗口的切换相关推荐

  1. python selenium 用法 和 Chrome headless

    From: http://cuiqingcai.com/2599.html Selenium教程:https://www.yiibai.com/selenium selenium 官方参考文档:htt ...

  2. python获取当前窗口句柄_人生苦短,我学python之python+selenium 多窗口、句柄(handle)...

    转载自 http://www.cnblogs.com/yoyoketang/p/6128611.html 前言 有些页面的链接打开后,会重新打开一个窗口,对于这种情况,想在新页面上操作,就得先切换窗口 ...

  3. [原创]关于打开新窗口和关闭老窗口的2个方法!

    第1种方法 如当前要打开的窗口为about.htm     <script language =javascript >          function openwin()       ...

  4. python selenium 处理悬浮窗口(baidu tj_more)

    python selenium 处理悬浮窗口 from selenium.webdriver.common.action_chains import ActionChains ActionChains ...

  5. Python selenium —— 文件下载,不弹出窗口,直接下载到指定路径

    今天谈谈文件下载吧,很多人不会处理弹出的文件下载框,其实跟上传类似,可以用autoit和win32api解决,方法类似,可以看博主之前的文章 Python selenium -- 文件上传所有方法整理 ...

  6. 【Python + selenium】在浏览器打开新页签

    [Python + selenium]在浏览器打开新页签,打开方式 2017年09月06日 11:34:25 宇风-飞扬 阅读数:3472 标签: seleniumpython句柄移动 更多 个人分类 ...

  7. python+selenium老中年人的使用与精进(持续施工中)

    前提要求:具备python基础便可以,老年人也无妨~ 这里针对的是selenium常见.常用的API操作,更多应用于web项目中. 关于selenium:SeleniumSelenium automa ...

  8. 让python执行完停在解释器窗口

    让python执行完停在解释器窗口 文章目录: 一.windows让批处理文件运行完成后不关闭窗口 二.让python执行完停在解释器窗口 我是在windows里写入的一个执行python脚本的批处理 ...

  9. python selenium 进入新标签页_python 爬虫之selenium可视化爬虫

    文章目录 前文回顾 快速入门 元素定位 页面操作 等待方式 扩展程序加载 点击此处,获取海量Python学习资料! 之所以把selenium爬虫称之为可视化爬虫 主要是相较于前面所提到的几种网页解析的 ...

最新文章

  1. i18n and L10n
  2. 在表格中批量显示图片
  3. linux最小安装桌面,Linux工作环境:CentOS7最小安装+Xfce桌面环境
  4. class没有发布到tomcat_总在说SpringBoot内置了tomcat启动,那它的原理你说的清楚吗?
  5. PHP 中 call_user_func 的使用
  6. linux 执行iso 文件,linux可以加载iso镜像文件到启动项吗
  7. 转换jsonArray异常——由hibernate引起的转换jsonArray异常解决办法
  8. 【清风建模】数学建模论文写作小技巧
  9. TSC打印机,使用java打印二维码
  10. 在华为手机上查看连接过的wifi密码(不愁记性不好)
  11. c语言lookup函数怎么用,lookup函数的使用方法,lookup函数怎么用?
  12. 在校生学习云计算HCIE难吗?好就业吗?
  13. js学习笔记----JavaScript中DOM扩展的那些事
  14. 惠普HP Laser MFP 136a 打印机驱动
  15. C语言变量前面加vol,Volitale
  16. Latex中处理中文
  17. C/C++ 各类型int、long、double、char、long long取值范围(基本类型的最大最小值)
  18. 华为虚拟防火墙互通和访问外网
  19. 一个半成小作品-短信伪造
  20. emqtt 启动报错 Erlang closed the connection 查看状态报错 Node 'emq@192.168.*.*' not responding to pings.

热门文章

  1. 软件构造课程面向对象编程学习心得
  2. 有效的医疗设备维修保养解决方案
  3. 微信小程序实现简单的瀑布流式布局
  4. gsoap应用---利用gsoap工具生成代码
  5. requirejs的缺点
  6. 基于角膜反射的学习心得
  7. 本白痴的第一个博客(就把自己的图形界面加c语言的滴滴打车信息系统传一下吧)
  8. 代码编程在线运行网站
  9. 采用OpenCV和深度学习的钢印识别
  10. 使用MapReduce统计一篇微博数据的点赞次数,并且输出前五个最高的点赞数量。