在web自动化测试中点击一个链接然后弹出新窗口是比较司空见惯的事情。

webdriver 中处理弹出窗口跟处理 frame 差不多,以下面的 html 代码为例

window.html

click me

下面的代码演示了如何去捕获弹出窗口

# coding:utf-8

__author__ = 'zhangzhe'

from selenium import webdriver

import time

import os

#打开Chrome

driver = webdriver.Chrome()

file_path = 'file:///' + os.path.abspath('windows.html')

driver.get(file_path)

time.sleep(3)

# 当前的window handle

ch = driver.current_window_handle

driver.find_element_by_link_text("click me").click()

time.sleep(3)

# 所有的window handles

wh = driver.window_handles

#在所有窗口中查找弹出窗口

for line in wh:

if line != ch:

driver.switch_to_window(line)

driver.find_element_by_id("kw").send_keys("selenium")

driver.switch_to_window(ch)

捕获或者说定位弹出窗口的关键在于获得弹出窗口的 handle。

在上面的代码里,current_window_handle, 然后使用了window_handles方法获取所有弹出的浏览器窗口的句柄,将这两个值的差值就是新弹出窗口的句柄。

在获取新弹出窗口的句柄后,使用 switch_to_window(line)方法,将新窗口的句柄以Name的方式作为参数传入既可捕获到新窗口了。

如果想回到以前的窗口定位元素,那么再调用1次switch_to_window方法, 传入之前窗口的句柄既可达到目的。

python win10 捕获 弹出窗口_Selenium-webdriver 系列Python教程(6)————如何捕获弹出窗口...相关推荐

  1. python元素定位的八种方法_selenium webdriver基于Python系列之八种元素定位方法

    1.id.name.class name.tag name.link text.partial link text.xpath.css selector在 Python 语言中对应的定位方法如下: f ...

  2. python win10安装包64位免费下载_anaconda python win10下载

    anaconda python3.7安装包是针对Windows 10系统打造的一款非常不错的拥有科学计算环境的python集成开发环境,该安装包应用范围广泛,可涉及人工智能.系统运维.Web开发.科学 ...

  3. python Series 添加行_傻傻分不清系列 | Python中各种字符串处理方法

    Python易混淆知识系列:Pandas字符串方法和字符串内建函数,使用Python的一个优势就是字符串处理起来比较容易. Python的初学者在学习字符串内建函数的时候往往会很困惑:字符串的内建函数 ...

  4. Python win10系统下创建发布

    Python win10系统下创建发布 最近开始学习Python,用head First Python入门. 看到书中构建发布部分,自己练习时,出了几个错误.这里把解决方法写出来,以方便自已以后温习. ...

  5. flask python web优品课堂_Python Flask Web网站编程全栈开发系列高清视频教程-价值2499...

    0 s: n8 F- K0 _5 i( I Python Flask Web网站编程全栈开发系列高清视频教程& ?- Y2 }3 U1 k9 t/ k! i 这是2016年11月第二期,跟第三 ...

  6. python win10 捕获 弹出窗口_[python爬虫] Selenium高级篇之窗口移动、弹出对话框自登录...

    在我们使用Selenium Python制作自动爬虫和网页自动测试的时候,通常会遇到弹出新的窗体或对话框的时候,此时你捕获的窗体已经被打断,从而干扰你的爬虫. 那怎么解决这个问题呢? 本篇文章主要记录 ...

  7. python弹出警告框_selenium+webdriver+python 中警告框的处理方法

    在自动化测试过程中,经常会遇到弹出警告框的情况,如图所示: 在 WebDriver 中处理 JavaScript 所生成的 alert.confirm 以及 prompt 是很简单的.具体做法是使用 ...

  8. python selenium 关闭窗口_Selenium快速上手实战 | 上篇

    前言 Selenium是一个用于Web应用程序的自动化测试工具.它直接运行在浏览器中,可以模拟用户在浏览器上面的行为操作. 在AirtestIDE中,开发者也给我们提供了使用Selenium的窗口.不 ...

  9. python documentation弹出_为什么在使用python idle时,会弹出python documentation?

    看下能不能帮到你或者你说详细一些,要么截个图: IDLE是Python软件包自带的一个集成开发环境,初学者可以利用它方便地创建.运行.测试和调试Python程序. 一.IDLE的安装 实际上,IDLE ...

  10. php如何让B链接在当前页面打,javascript - 如何实现点击链接 A 弹出窗口 X,点击链接 B 继续在弹出窗口 X (刷新)打开?...

    就是有很多链接,点击链接会弹出窗口,如何实现点击不同的链接,始终在同一弹出窗口中打开,而不是每次都弹出新的窗口. 用下面的代码只能每次都弹出新的窗口. $('a').click(function(){ ...

最新文章

  1. docker存储结构解析
  2. webstorm 两个文件对比不同_DOS 入门到精通 使用 fc 命令比较两个文件,并逐一显示不同之处...
  3. js包装类型的装箱拆箱
  4. no typehandler found for property XXXX 解决
  5. uCOS-III应用开发笔记之一:uCOS-III在STM32的移植
  6. WPF圆角按钮与触发颜色变化
  7. android mux协议,GSM 07.10 MUX 协议驱动解析
  8. java比较炫的小程序_有人不建议学Java,有人不建议学Python,该怎么选择
  9. NXP IMX6ULL芯片时钟系统全概况
  10. 阿里巴巴是怎么处理大数据的?重磅揭秘!
  11. P2141_珠心算测验
  12. HANA XS Administration Tool登录参数设置
  13. 支持OnVif协议的摄像头直播推流php
  14. BNUOJ29065鸣人的查克拉
  15. C++输入日期判断是周几
  16. 无线电视服务器主机名,电视服务器主机名怎么填
  17. 2017年美国数学建模MCM/ICM ABCDEF试题分析
  18. 嵌入式面试题之单片机知识
  19. CM阿里云安装Cloudera Mananger
  20. linux解压zip文件

热门文章

  1. 物联网 (IoT) 为何如此重要?哪些技术让物联网成为了可能?
  2. element upload限制上传图片尺寸、大小、比例
  3. python获取指定日期的前一天爆炸,用Python做个定时炸弹,玩一玩!
  4. 极光笔记 | 极光PUSH服务助力企业提升抢单速度
  5. 清泉HAL库开发STM32之USART
  6. 给虚拟打印机添加A3纸支持
  7. 苹果平板电脑:显示已停用;怎么样打开
  8. Android中复制及粘贴功能
  9. 求两个自然数的最大公约数
  10. 海浪相关术语波高、浪高等