Python+Selenium多窗口之前的切换

实现思路:

1.handles = driver.window_handles获取当前浏览器打开的所有窗口的句柄,返回数组

2.通过handles数组的索引来在各个窗口之间切换

示例代码如下:


# -*- coding:utf-8 -*-
"""
    提示:在python文件命名的时候,尽量不要让文件名和类名相同,否则在导入类后使用该类时,会报错
"""
from selenium import webdriver
from time import sleep
import time

driver = webdriver.Chrome('E:\eclipse_jar\selenium_jar\chromedriver_lastest\chromedriver.exe')
driver.get('http://www.baidu.com')      #打开百度
sleep(1)
driver.execute_script("window.open('http://www.sogou.com/')")      #打开搜狐
sleep(1)
driver.execute_script("window.open('http://www.youdao.com/')")      #打开有道
sleep(1)
driver.execute_script("window.open('http://www.qq.com/')")      #打开腾讯
sleep(1)

handles = driver.window_handles     #获取当前浏览器打开的所有窗口的句柄,返回数组
print(len(handles))                 #打印handles数组的长度
print('===========================')

driver.switch_to.window(handles[3])
t0 = driver.title
driver.save_screenshot('截图\\' + str(int(time.time())) + '.png')     #截取当前窗口图片,表示切换成功
driver.close()
print('成功关闭窗口:' + t0)
print('===========================')
sleep(1)

driver.switch_to.window(handles[2])
t1 = driver.title
driver.save_screenshot('截图\\' + str(int(time.time())) + '.png')     #截取当前窗口图片,表示切换成功
driver.close()
print('成功关闭窗口:' + t1)
print('===========================')
sleep(1)

driver.switch_to.window(handles[1])
t2 = driver.title
driver.save_screenshot('截图\\' + str(int(time.time())) + '.png')     #截取当前窗口图片,表示切换成功
driver.close()
print('成功关闭窗口:' + t2)
print('===========================')
sleep(1)

driver.switch_to.window(handles[0])
t3 = driver.title
driver.save_screenshot('截图\\' + str(int(time.time())) + '.png')     #截取当前窗口图片,表示切换成功
driver.close()
print('成功关闭窗口:' + t3)
print('===========================')
sleep(1)

有更好,更简便的方法,欢迎小伙伴儿们交流  (* ̄︶ ̄)

猜你喜欢

转载自blog.csdn.net/lykio_881210/article/details/79913567