1. 程式人生 > >Selenium-多窗口處理

Selenium-多窗口處理

主頁 火狐 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-多窗口處理