基于python语言的selenium2 的多窗口切换问题记录及解决方法

#!/usr/bin/env python 
# -*- coding:utf-8 -*-
from selenium import webdriver
import time

driver = webdriver.Firefox()
#driver.implicitly_wait(10)

driver.get('http://www.baidu.com')


#获取百度搜索窗口的句槟
sreach_windows = driver.current_window_handle
#driver.find_element_by_link_text('登录').click() 这样写定位不到元素我换中方式如下可以
driver.find_element_by_css_selector("#u1 > a[name="tj_login"]").click()
#这一步成功后没有加time.sleep(3)直接报错,定位不到元素加上正常
time.sleep(3)
driver.find_element_by_link_text("立即注册").click()

#获得当前所有打开窗口的句柄
all_handles = driver.window_handles

#进入注册窗口
for handle in all_handles:
if handle != sreach_windows:
driver.switch_to.window(handle)
print('现在是注册页面')
time.sleep(3)
driver.find_element_by_name("userName").send_keys('username')
time.sleep(2)
driver.find_element_by_xpath(".//*[@id='TANGRAM__PSP_3__password']").send_keys('password')
time.sleep(2)

#回到搜索窗口
for handle in all_handles:
if handle == sreach_windows:
driver.switch_to.window(handle)
print("这是搜索页面")
driver.find_element_by_id('TANGRAM__PSP_4__closeBtn').click()
driver.find_element_by_id('kw').send_keys("selenium")
driver.find_element_by_id("su").click()
time.sleep(2)

driver.quit()
原文地址:https://www.cnblogs.com/wsying/p/9395506.html