selenium多窗口切换

以百度注册窗口切换为例:

# coding=utf-8
from selenium import webdriver
from time import sleep

dr = webdriver.Firefox() 
dr.get("http://www.baidu.com")

#获取当前窗口
firsthandle = dr.current_window_handle

dr.find_element_by_link_text(u'登录').click()
sleep(3)

dr.find_element_by_link_text(u'立即注册').click()
sleep(3)

#获取所有窗口,不能直接获取新打开的窗口
allhandles = dr.window_handles

#对所有窗口进行一个筛选
for handle in allhandles:
    if handle != firsthandle:
        dr.switch_to_window(handle)
        print 'swtich to newhandle'
        dr.find_element_by_name('userName').send_keys('134445533')
        sleep(2)

#返回第一个窗口
dr.switch_to_window(firsthandle)
print 'back to firsthandle'
dr.find_element_by_id('kw').send_keys("selenium")
sleep(2)

#返回第二个窗口
dr.switch_to_window(handle)
print 'back to secondhandle'

 

posted @ 2018-11-09 21:28  黄萝卜和吱吱兔  阅读(173)  评论(0编辑  收藏  举报