码迷,mamicode.com
首页 > 其他好文 > 详细

【selenium自动化——多窗口处理】

时间:2017-02-22 16:35:57      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:end   switch   drive   from   ram   通过   name   标识   get   

要想在多个窗口之间切换,首先要获得每一个窗口的唯一标识符号(句柄)。通过获得的句柄来区别分不同的窗口,从而对不同窗口上的元素进行操作。

代码示例:

#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(u"注册成功!")
time.sleep(3)
driver.quit()

 

用到的方法:

current_window_handle:获得当前窗口句柄

window_handles:返回的所有窗口的句柄到当前会话

switch_to_window():用于处理多窗口操作的方法,与我们前面学过的 switch_to_frame() 是类似,switch_to_window()用于处理多窗口之前切换,switch_to_frame() 用于处理多框架的切换。

close():如果你足够细心会发现我们在关闭“注册页”时用的是 close()方法,而非 quit();close()用于关闭当前窗口,quit()用于退出驱动程序并关闭所有相关窗口

 

【selenium自动化——多窗口处理】

标签:end   switch   drive   from   ram   通过   name   标识   get   

原文地址:http://www.cnblogs.com/jinshengshun/p/6429394.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!