在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。
分享到:
相关推荐
### Selenium WebDriver 知识点详解 #### 一、Selenium WebDriver 概述 - **定义**: Selenium WebDriver 是一个用于自动化 Web 测试的工具,它直接与浏览器交互,模拟真实用户的操作行为,支持多种浏览器和平台。 ...
### Selenium2 WebDriver + Java 自动化测试实战和完全教程 #### 快速开始 Selenium WebDriver 学习历程 ##### 一、快速开始 本章节主要介绍了如何快速启动 Selenium WebDriver 的学习之旅,适合刚接触 Selenium ...
关键在于获取当前窗口的句柄以及所有窗口的句柄,并能够正确地切换到需要操作的新窗口。这对于编写复杂的自动化测试脚本非常有用。 #### 七、注意事项 - 在处理窗口切换时,需要注意浏览器的版本以及 WebDriver 的...
- 处理弹出窗口和对话框:通过`switch_to.alert`处理警告对话框,或切换到新打开的窗口和框架。 - 模拟键盘和鼠标事件:使用`ActionChains`类模拟用户输入。 - 并行测试:使用`TestNG`或`pytest`进行多浏览器并行...
这份手册主要针对Selenium 2 WebDriver的API,不涵盖Selenium 1或Selenium RC的内容。 ### 1. 安装Selenium Python Bindings **1.1 安装Python Bindings** 要安装Selenium Python支持库,首选方法是从PyPI官方库...
# 切换到新打开的窗口 driver.switch_to.window(driver.window_handles[1]) # 切换到指定框架 driver.switch_to.frame("myframe") ``` **3.5 弹出对话框** 处理弹出的对话框(如警告框或确认框)需要使用 `switch...
browser.switch_to.window("新窗口") ``` 12. **对话框操作**: - **.switch_to.alert**: - **功能**:切换到弹出的对话框。 - **示例**: ```python alert = browser.switch_to.alert ``` - **.accept...
前言:在页面操作过程中有时候点击某个链接会弹出新的窗口,但由于Selenium的所有操作都是在第一个打开的页面进行的,这时就需要主机切换到新打开的窗口上进行操作。WebDriver提供了switch_to.window()方法,可以...
在新窗口打开后,`driver.current_window_handle`会返回新窗口的句柄,而`driver.title`则会返回新窗口的页面标题。接着,通过`driver.window_handles`获取所有窗口的句柄列表,并使用`switch_to.window(handles[1])...
- **弹出窗口的处理**:处理窗口切换,比如处理新的窗口打开。 - **处理对话框alert\confirm\prompt**:通过`driver.switchTo().alert()`来操作。 - **表格的处理**:遍历表格中的所有单元格,并提取所需的数据。 - ...
driver.switch_to.window(driver.window_handles[1]) # 切换到新的窗口 ``` 8. **页面源码和截图**:获取页面源码和截取当前页面图片。 ```python page_source = driver.page_source driver.save_screenshot('...
Selenium2Library是一个基于Selenium WebDriver的测试库,主要用于网页界面的自动化测试。 知识点如下: 1. **测试前提**:在开始使用Selenium2Library进行自动化测试之前,需要准备测试前提。通常指环境的搭建和...
这些只是Selenium WebDriver的基本用法,实际应用中,开发者还可以利用更高级的功能,如模拟鼠标和键盘事件、处理弹出窗口、框架切换、执行JavaScript等,实现复杂的测试场景。Selenium的灵活性和广泛支持使其成为...
##### 2.7.5 关闭新窗口,切回主页 关闭当前窗口并切换回主页: ```python driver.close() driver.switch_to.window(handles[0]) ``` ##### 2.7.6 批量操作 对一组元素进行批量操作: ```python for element in ...
通过Python与Selenium的结合,可以实现对Web页面的各种操作,包括点击按钮、填写表单、切换窗口等,从而完成一系列复杂的测试任务。 #### 二、环境搭建 ##### Python安装 1. **下载与安装**:访问Python官网...
在播放页面,`switch_to.window(driver.window_handles[-1])`将浏览器焦点切换到新打开的窗口,即视频播放窗口。然后,通过`find_element_by_xpath('//video')`获取视频元素,使用`get_attribute('src')`获取视频源...
new_window = driver.window_handles[1] # 假设新窗口是第二个 driver.switch_to.window(new_window) ``` **断言与异常处理** 在测试中,断言用于验证预期结果是否与实际结果相符。Selenium没有内置的断言函数,但...