Selenium-多窗口處理
阿新 • • 發佈:2017-09-03
主頁 火狐 link blog from images find pre python
彈出新的窗口,該如何處理
1.獲取當前窗口句柄
2.元素的操作,打開新的窗口
3.獲取所有窗口句柄
4.for循環遍歷所有窗口,定位到需要操作的窗口上
和你當前句柄不一樣的就說明是新的,通過打印title來判斷
實例:打開了新的窗口
‘‘‘ 多窗口處理 訪問火狐主頁,之後再新窗口訪問微博 ‘‘‘
#! /usr/bin/env python #coding=utf-8 from selenium import webdriver import time ‘‘‘ 多窗口處理 訪問火狐主頁,之後再新窗口訪問微博 ‘‘‘ driver = webdriver.Firefox() driver.get("http://i.firefoxchina.cn/?from=worldindex") #driver.maxmize_window() #獲取當前窗口句柄 curr_handle = driver.current_window_handle print("curr_handle=",curr_handle) time.sleep(5) #新打開的窗口 driver.find_element_by_link_text("微 博").click() #獲取所有窗口句柄 all_handles = driver.window_handles #遍歷所有窗口句柄,和你當前句柄不一樣的就說明是新的,通過打印title來判斷for h in all_handles: if h != curr_handle: #跳轉到h窗口 driver.switch_to_window(h) #獲取到新窗口的句柄 curr_handle = driver.current_window_handle print("curr_handle=",curr_handle) time.sleep(5) driver.quit()
結果:
curr_handle= {5a0d739b-6d2f-4130-b3fd-c8c04a7bf89b}
curr_handle= {b7957d2c-7682-4095-85bb-2a500d472bcc}
Selenium-多窗口處理