Selenium-webdriver 系列Python教程(6)————如何捕获弹出窗口

在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方法, 传入之前窗口的句柄既可达到目的。


转载于:https://my.oschina.net/zhangzhe/blog/414506

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值