`
uniquepig
  • 浏览: 92180 次
  • 性别: Icon_minigender_2
  • 来自: 成都
社区版块
存档分类
最新评论

WebDriver(Selenium2) 根据新窗口title切换窗口

阅读更多
在webdriver官方的api中,切换窗口的方法提供的参数是nameOrHandle。
引用
WebDriver window(java.lang.String nameOrHandle)
          Switch the focus of future commands for this driver to the window with the given name/handle.

但是在实际运用中,更多的可能是需要根据新窗口的title去切换窗口。因此封装了如下方法:
	public boolean switchToWindow(WebDriver driver,String windowTitle){
		boolean flag = false;
		try {
			String currentHandle = driver.getWindowHandle();
			Set<String> handles = driver.getWindowHandles();
			for (String s : handles) {
				if (s.equals(currentHandle))
					continue;
				else {
					driver.switchTo().window(s);
					if (driver.getTitle().contains(windowTitle)) {
						flag = true;
						System.out.println("Switch to window: "
								+ windowTitle + " successfully!");
						break;
					} else
						continue;
				}
			}
		} catch (NoSuchWindowException e) {
			System.out.println("Window: " + windowTitle
					+ " cound not found!", e.fillInStackTrace());
			flag = false;
		}
		return flag;
	}

首先获取当前driver驱动的所有窗口的handle然后进行比对筛选,如果窗口的title符合预期,则切换,并返回true,反之则返回false。
分享到:
评论
1 楼 hgyijianfeitian 2014-03-25  
我的driver.getWindowHandles()返回的值只有一个
请问这是什么原因呢
没法往别的窗口转换

相关推荐

    selenium webdriver

    ### Selenium WebDriver 知识点详解 #### 一、Selenium WebDriver 概述 - **定义**: Selenium WebDriver 是一个用于自动化 Web 测试的工具,它直接与浏览器交互,模拟真实用户的操作行为,支持多种浏览器和平台。 ...

    selenium2 Webdriver + Java 自动化测试实战和完全教程

    ### Selenium2 WebDriver + Java 自动化测试实战和完全教程 #### 快速开始 Selenium WebDriver 学习历程 ##### 一、快速开始 本章节主要介绍了如何快速启动 Selenium WebDriver 的学习之旅,适合刚接触 Selenium ...

    python WebDriver 弹出窗口

    关键在于获取当前窗口的句柄以及所有窗口的句柄,并能够正确地切换到需要操作的新窗口。这对于编写复杂的自动化测试脚本非常有用。 #### 七、注意事项 - 在处理窗口切换时,需要注意浏览器的版本以及 WebDriver 的...

    Selenium webDriver(chrome和Firefox)

    - 处理弹出窗口和对话框:通过`switch_to.alert`处理警告对话框,或切换到新打开的窗口和框架。 - 模拟键盘和鼠标事件:使用`ActionChains`类模拟用户输入。 - 并行测试:使用`TestNG`或`pytest`进行多浏览器并行...

    Selenium-Python中文手册

    这份手册主要针对Selenium 2 WebDriver的API,不涵盖Selenium 1或Selenium RC的内容。 ### 1. 安装Selenium Python Bindings **1.1 安装Python Bindings** 要安装Selenium Python支持库,首选方法是从PyPI官方库...

    Selenium Python Bindings 2017年 新版 原版

    # 切换到新打开的窗口 driver.switch_to.window(driver.window_handles[1]) # 切换到指定框架 driver.switch_to.frame("myframe") ``` **3.5 弹出对话框** 处理弹出的对话框(如警告框或确认框)需要使用 `switch...

    selenium webdriver+python基本操作.docx

    browser.switch_to.window("新窗口") ``` 12. **对话框操作**: - **.switch_to.alert**: - **功能**:切换到弹出的对话框。 - **示例**: ```python alert = browser.switch_to.alert ``` - **.accept...

    Python爬虫之Selenium多窗口切换的实现

    前言:在页面操作过程中有时候点击某个链接会弹出新的窗口,但由于Selenium的所有操作都是在第一个打开的页面进行的,这时就需要主机切换到新打开的窗口上进行操作。WebDriver提供了switch_to.window()方法,可以...

    selenium+python自动化测试之多窗口切换

    在新窗口打开后,`driver.current_window_handle`会返回新窗口的句柄,而`driver.title`则会返回新窗口的页面标题。接着,通过`driver.window_handles`获取所有窗口的句柄列表,并使用`switch_to.window(handles[1])...

    selenium基础

    - **弹出窗口的处理**:处理窗口切换,比如处理新的窗口打开。 - **处理对话框alert\confirm\prompt**:通过`driver.switchTo().alert()`来操作。 - **表格的处理**:遍历表格中的所有单元格,并提取所需的数据。 - ...

    selenium python 库

    driver.switch_to.window(driver.window_handles[1]) # 切换到新的窗口 ``` 8. **页面源码和截图**:获取页面源码和截取当前页面图片。 ```python page_source = driver.page_source driver.save_screenshot('...

    RobotFramework-Selenium2Library中文版_V1.1

    Selenium2Library是一个基于Selenium WebDriver的测试库,主要用于网页界面的自动化测试。 知识点如下: 1. **测试前提**:在开始使用Selenium2Library进行自动化测试之前,需要准备测试前提。通常指环境的搭建和...

    selenium-dotnet-2.39.0 net40

    这些只是Selenium WebDriver的基本用法,实际应用中,开发者还可以利用更高级的功能,如模拟鼠标和键盘事件、处理弹出窗口、框架切换、执行JavaScript等,实现复杂的测试场景。Selenium的灵活性和广泛支持使其成为...

    selenium高级自动化(图文教程)-抢先版

    ##### 2.7.5 关闭新窗口,切回主页 关闭当前窗口并切换回主页: ```python driver.close() driver.switch_to.window(handles[0]) ``` ##### 2.7.6 批量操作 对一组元素进行批量操作: ```python for element in ...

    基于Python3.3+Selenium3.0框架实战Web自动化测试实战(百度网站实测项目)

    通过Python与Selenium的结合,可以实现对Web页面的各种操作,包括点击按钮、填写表单、切换窗口等,从而完成一系列复杂的测试任务。 #### 二、环境搭建 ##### Python安装 1. **下载与安装**:访问Python官网...

    selenium爬取下载好看视频

    在播放页面,`switch_to.window(driver.window_handles[-1])`将浏览器焦点切换到新打开的窗口,即视频播放窗口。然后,通过`find_element_by_xpath('//video')`获取视频元素,使用`get_attribute('src')`获取视频源...

    notes-selenium

    new_window = driver.window_handles[1] # 假设新窗口是第二个 driver.switch_to.window(new_window) ``` **断言与异常处理** 在测试中,断言用于验证预期结果是否与实际结果相符。Selenium没有内置的断言函数,但...

Global site tag (gtag.js) - Google Analytics