Selenium----多窗口切换

  有时候我们在测试一个web应用时会出现多个浏览器窗口的情况,这时候可以用webdriver提供的相关方法来在
多个窗口之间切换并操作不同窗口的元素。要想在多个窗口之间切换,首先要获得每一个窗口唯一的标识符号(也就是句柄),
通过获得的句柄来区分不同的窗口,从而对不同窗口的元素进行操作。

#coding=utf-8
from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.get("http://www.baidu.com/")
#获得当前窗口句柄
nowhandle=driver.current_window_handle
#打开注册新窗口
driver.find_element_by_name("tj_reg").click()
#获得所有窗口句柄 allhandles=driver.window_handles #循环判断窗口是否为当前窗口 for handle in allhandles:   if handle != nowhandle:   driver.switch_to_window(handle) #用于处理多窗口之间的切换   print 'now register window!' #切换到邮箱注册标签 driver.find_element_by_id("mailRegTab").click() time.sleep(5) driver.close() #回到原先的窗口 driver.switch_to_window(nowhandle) driver.find_element_by_id("kw").send_keys("注册成功!") time.sleep(3) driver.quit()

处理思路:
  1.首先通过nowhandle获得当前窗口的句柄,然后打开注册窗口;
  2.通过allhandles获得所有窗口的句柄;对所有句柄进行循环,判断窗口是否为nowhandle(百度首页),如果不是则获得当前窗口(注册页)的句柄;
  3.然后对注册页的元素进行操作。最后,返回百度首页

 

转载于:https://www.cnblogs.com/yttbk/p/11028079.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值