`

5.9 浏览器多窗口处理

 
阅读更多
在进行Web测试时,还会弹出一些子窗口,并且在多个窗口之间进行切换操作。
例如,在百度首页,单击“注册”超级链接,弹出一个标题为“百度账号注册”新页面。接下来以百度账号注册窗口为例,讨论如何测试多个窗口之间的切换。

1  WindowHandles/getWindowHandles()
  要在多个窗口之间进行切换,首先必须获取每个窗口的唯一标识符(句柄),通过WindowHandles属性(用于C#)/getWindowHandles()(用于Java)可以获取所有打开窗口的标识符,并将其以集合的形式返回。
下面举例说明先打开百度注册窗口,然后获取所有窗口的标识符并将其打印出来
WebDriver mainWindow = new FirefoxDriver();
Navigation navigation = mainWindow.navigate();
navigation.to(http://www.baidu.com);
WebElement btnInMainWindow = mainWindow.findElement(By.name("tj_reg"));
btnInMainWindow.click();
String[] handles=new String[mainWindow.getWindowHandles().size()];
mainWindow.getWindowHandles().toArray(handles);
for (int i = 0; i < handles.length; i++)
{
System.out.println(handles[i]);
}


2  Window(windowName)

  新窗口弹出后,可以通过它的标识符(句柄)切换到该窗口,再对该窗口的元素进行操作。

  例如,先打开百度首页,单击“注册”以弹出注册窗口,然后切换到注册窗口,在邮箱文本框中输入“12345@qq.com”
WebDriver mainWindow = new FirefoxDriver();
Navigation navigation = mainWindow.navigate();
navigation.to(http://www.baidu.com);
WebElement btnInMainWindow = mainWindow.findElement(By.name("tj_reg"));
btnInMainWindow.click();
String[] handles=new String[mainWindow.getWindowHandles().size()];
mainWindow.getWindowHandles().toArray(handles);
WebDriver childWindow = mainWindow.switchTo().window(handles[1]);
WebElement tbxInchildWindow = childWindow.findElement(By.id("pass_reg_email_0"));
tbxInchildWindow.sendKeys("12345");
分享到:
评论

相关推荐

    TheWorld 2.0.5.9苦菜花增强优化绿色修正版

    【TheWorld 2.0.5.9苦菜花增强优化绿色修正版】是一款基于浏览器的多窗口管理工具,主要用于提升用户的网页浏览体验。这款软件的版本号2.0.5.9表明它经历了一系列的更新和改进,而“苦菜花增强优化”可能是指在原有...

    QT5.9跨平台界面编程原理和实战大全(视频+源码)(百度网盘连接)

    QT5.9是一款强大的跨平台应用程序开发框架,由Qt公司开发,它允许开发者编写一次代码,然后在多个操作系统上运行,如Windows、Linux、macOS、Android和iOS等。本资源包提供了QT5.9的界面编程原理和实战教程,包括...

    PyQt5_gpl-5.9.tar.gz

    7. **Qt WebEngine/Qt WebKit**: 提供Web浏览器引擎,可以显示网页内容。 8. **Qt OpenGL**: 用于进行高性能的图形渲染。 9. **Qt PrintSupport**: 提供打印和预览功能。 10. **Qt Test**: 提供单元测试和集成测试...

    pyqt5.9 + sip4.19.5源码 +编译.zip

    3. **布局管理**:PyQT5的QLayout系统允许自动调整控件的大小和位置,以适应窗口的变化。 4. **模型/视图/控制器**:PyQT5支持MVC设计模式,分离数据模型、显示视图和用户交互逻辑。 5. **图形视图框架**:提供了一...

    JavaScript实用范例词典04-14

    5.9 设定浏览器窗口大小(IE) 112 5.10 不能改变大小的窗口... 113 5.11 指定浏览器窗口的位置... 114 5.12 取得屏幕的大小... 114 5.13 提示浏览者更改分辨率... 115 5.14 使浏览器窗口显示于屏幕中央... 116 ...

    qt中使用WEBKIT浏览网页的完整代码

    这个项目的源代码可以作为学习如何在 QT 中实现更复杂浏览器功能的参考,例如书签管理、历史记录、多标签支持等。 总的来说,QT WebKit 提供了一个强大且灵活的框架,使得开发者可以在 QT 环境下构建功能完备的网页...

    JavaScript王者归来part.1 总数2

     11.2 Document对象--浏览器窗口文档内容的代表   11.2.1 Document对象概览   11.2.2 动态生成的文档   11.2.3 Document对象的基本信息   11.2.4 Document对象的外观属性   11.2.5 Document子对象接口  ...

    javascript网页特效实例大全

    9.17 显示浏览器信息的窗口 252 9.18 显示访客登录信息的窗口 253 9.19 标题渐变的窗口 255 9.20 绝对全屏打开链接网页 257 9.21 打开一个频道窗口 258 9.22 在页面中打开窗口 258 9.23 自动滚动的窗口 259 ...

    JavaScript网页特效范例宝典源码

    实例018 下降式浏览器 32 实例019 旋转的窗口 33 实例020 移动的窗口 34 实例021 震动的窗口 35 实例022 弹出广告窗口 36 1.4 窗口控制 37 实例023 窗口始终在最上面 38 实例024 窗口的最小化、最大化 39 实例025 ...

    下载工具多资源超线程技术,显著提升下载速度

    好东西迅雷5.9 新的多资源超线程技术,显著提升下载速度 功能强大的任务管理功能,可以选择不同的任务管理模式 智能磁盘缓存技术,有效防止了高速下载时对硬盘的损伤 智能的信息提示系统,根据用户的操作提供相关...

    集成视觉应用

    这部分提供了寻找和处理多个相同类型项目的策略。 **6.3.12 总是检查确认图像目标在预期限制内** 这部分强调了在处理图像时始终验证目标是否符合预期的重要性。 #### 七、RAPID参考信息 **7.1 指令** 这部分...

    精通javascript

    2.选择浏览器的“工具”-“安全”-“本地Intranet”-“自定义级别”-“活动脚本”中选用“禁用”单选框 3.在浏览器中输入下述地址:http://localhost/1.2.htm • 1.1.htm 多段代码相互调用 • 1.2....

    tesseral2-d

    - **浏览器窗口**: 提供了一个可视化的环境,用于查看和分析模拟结果。 - **文件菜单**: 包括打开、保存等文件操作。 - **浏览菜单**: 控制视图的显示方式。 - **图片可视化选项**: - **颜色映射**:为数据分配...

    Android开发应用实战详解源代码

    3.2 改变屏幕窗口元素的背景颜色 3.3 改变textview的文字颜色 3.4 实现textview文字的替换 3.5 获取手机分辨率 3.6 样式修饰处理 3.7 按钮事件响应 3.8 页面间的转换 3.9 activity调用 3.10 多个activity间的数据...

    WebGL 规范 中文版 pdf

    这块缓存通常对应于浏览器窗口的一部分或者整个窗口。 - **2.3 WebGL视口**:视口指的是渲染结果将在屏幕上显示的区域。WebGL允许开发者指定视口的位置和大小,这对于控制渲染效果至关重要。 - **2.4 预乘Alpha, ...

    Java用户界面类和Applet.ppt

    AWT是Java的基础UI库,它提供了一系列用于创建窗口、对话框、控件和处理事件的类。AWT的核心概念包括: - **组件(Component)**:组件是UI的基本元素,如按钮、文本字段等。它们必须放在容器内才能显示。 - **容器...

    垂直滚动条.zip

    然而,需要注意的是,这些CSS属性在不同的浏览器中的支持程度不同,主要是Webkit内核的浏览器(如Chrome和Safari)支持较好。 2. **JavaScript**:如果需要更复杂的交互,如动态加载内容或响应滚动事件,JavaScript...

    精通JavaScript

    • 5.9.htm encodeURI方法 • 5.10.htm decodeURI方法 • 5.11.htm decodeURI方法 • 5.12.htm decodeURI方法 • 5.13.htm isNaN方法 • 5.14.htm escape方法 • ...

Global site tag (gtag.js) - Google Analytics