Selenium-多窗口处理

弹出新的窗口,该如何处理

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}

时间: 2024-08-07 17:00:36

Selenium-多窗口处理的相关文章

selenium webdriver窗口切换

selenium webdriver窗口切换,有时候在做自动化的时候需要打开很多很多的页面, 当在操作不同的页面的时候需要切换窗口,下面是如何切换到前后页面窗口的操作: package test20161206; import org.openqa.selenium.By; import org.openqa.selenium.Keys; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; im

win+python+selenium实现窗口和tab切换

这篇总结主要是关于两方面的需求:其一,在浏览器不同tab标签页之间按时间切换(同事用来不停刷新grid crontol 监控页面):其二,实现开启多个窗口,并将窗口缩放到一定范围,并齐占满整个桌面,按不同的时间间隔刷新几个页面. 一.标签页之间切换 之前这个通过找了一个浏览器插件tab-rotator实现了其需求,并未写程序实现,后面没事的时候网上翻selenium资料写了一个,内容如下: #code by www.111cn.netfrom selenium.webdriver.common.

selenium 多窗口切换

selenium 多窗口切换 知识点: 1.current_window_handle:获取当前窗口句柄 2.window_handles:返回所有窗口的句柄到当前会话 3.switch_to.window():用于切换到相应的窗口.  与switch_to.frame()类似. switch_to.window()是用于不同窗口的切换.switch_to.frame()是用于不同表单的切换. 示例; #selenium 窗口切换 from selenium import webbrowser

Python+selenium之窗口截图

自动化用例是由程序去执行,因此有时候打印的错误信息并不明确,如果在脚本执行错误的时候能对当前窗口截图保存,那么通过图片就可以非常直观的看出出错的原因.webdriver提供了截图函数get_screenshot_as_file()来截取当前创窗口. 1 from selenium import webdriver 2 from time import sleep 3 driver = webdriver.Firefox() 4 driver.get("http://www.baidu.com&q

selenium切换窗口后定位元素出现问题的解决方案

在做UI自动化的过程中,有时需要由一个窗口跳转到另一个窗口,这时直接去定位页面元素,可能会出现问题,这时,我们需要将driver与新的窗口进行绑定. 完整代码如下:(python版) #coding=utf-8 import os from selenium import webdriver import time chrome = 'C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe' os.environ["we

Selenium多窗口切换方法快速入门

问题描述:执行脚本时遇到最多的一个问题就是Unable to find element in selenium...,除了排除页面加载时间原因外,对于初学者常犯的一个错误是,点击某个按钮跳转到新页面的问题.若在当前页面打开,给予足够的加载时间即可.但若是新窗口打开页面时,Selenium是不会自动识别到新窗口去查找元素的,所以需要我们去模拟人为切换到新窗口.WebDriver 提供了 switchTo().window()方法可以实现在不同的窗口之间切换. 解决方案: 1.首先,确认在哪个ste

selenium 多窗口操作

代码如下: #conding=utf-8 """ @Author : rechin @Language: python """ from selenium import webdriver from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.ui import WebDriverWait from sele

selenium 切换窗口的几种方法

第一种方法: 使用场景: 打开多个窗口,需要定位到新打开的窗口 使用方法: # 获取打开的多个窗口句柄 windows = driver.window_handles # 切换到当前最新打开的窗口 driver.switch_to.window(windows[-1]) 举例说明: 1 # _._ coding:utf-8 _._ 2 3 """ 4 :author: 花花测试 5 :time: 2017.05.03 6 :content: 使用第一种方法切换浏览器 7 &q

Selenium切换窗口,使用js命令

在页面操作过程中有时候点击某个链接会弹出新的窗口,这时就需要主机切换到新打开的窗口上进行操作. WebDriver提供了switch_to.window()方法,可以实现在不同的窗口之间切换. 以百度首页和百度注册页为例,在两个窗口之间的切换如下图. from selenium import webdriver import time driver = webdriver.Firefox() driver.implicitly_wait(10) driver.get("http://www.ba

selenium 切换窗口

#1. driver.window.handles 所有的窗口 ==== 列表 handles 就是id 每次都会变 # 最新打开的窗口在最末尾,最开始打开的窗口,在列表的第一值# 2. 选择最新窗口 window_handles[-1] # 3. 切换: driver.switch_to.window() / iframe /alert from selenium.webdriver.common.by import Byfrom selenium import webdriverfrom s