在页面操作过程中有时点击某个链接会弹出新的窗口,这时就需要主机切换到新打开的窗口上进行操作
from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
#获取百度搜索窗口句柄,句柄是一个系统内部数据结构的引用
serach_windows = driver.current_window_handle
time.sleep(3)
driver.find_element_by_link_text('登录').click()
time.sleep(5)
driver.find_element_by_link_text('立即注册').click()
#获取所有窗口句柄
all_handles=driver.window_handles
#进入注册窗口
for handle in all_handles:
if handle != serach_windows:
driver.switch_to.window(handle)
print('now register window!')
driver.find_element_by_name('userName').send_keys('username')
driver.find_element_by_name('phone').send_keys('123456')
time.sleep(5)
driver.find_element_by_id('TANGRAM__PSP_3__password').send_keys('123ABCD')
time.sleep(3)
#回到搜索窗口
for handle in all_handles:
if handle == serach_windows:
driver.switch_to.window(handle)
print('now sreach window!')
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(3)
driver.quit()