Selenium是一个很好用的Web界面测试框架。但它的功能也有不足之处,比如: 在Selenium IDE中不支持程序控制语句。下面介绍如何在Selenium IDE中添加程序控制功能。
1)下载Selenium插件 (sideflow.js):
如果不想下载,直接把下面的代码保存到本机也可。
var gotoLabels= {};
var whileLabels = {};
// overload the original Selenium reset function
Selenium.prototype.reset = function() {
// reset the labels
this.initialiseLabels();
// proceed with original reset code
this.defaultTimeout = Selenium.DEFAULT_TIMEOUT;
this.browserbot.selectWindow("null");
this.browserbot.resetPopups();
}
Selenium.prototype.initialiseLabels = function()
{
gotoLabels = {};
whileLabels = { ends: {}, whiles: {} };
var command_rows = [];
var numCommands = testCase.commands.length;
for (var i = 0; i < numCommands; ++i) {
var x = testCase.commands[i];
command_rows.push(x);
}
var cycles = [];
for( var i = 0; i < command_rows.length; i++ ) {
if (command_rows[i].type == 'command')
switch( command_rows[i].command.toLowerCase() ) {
case "label":
gotoLabels[ command_rows[i].target ] = i;
break;
case "while":
case "endwhile":
cycles.push( [command_rows[i].command.toLowerCase(), i] )
break;
}
}
var i = 0;
while( cycles.length ) {
if( i >= cycles.length ) {
throw new Error( "non-matching while/endWhile found" );
}
switch( cycles[i][0] ) {
case "while":
if( ( i+1 < cycles.length ) && ( "endwhile" == cycles[i+1][0] ) ) {
// pair found
whileLabels.ends[ cycles[i+1][1] ] = cycles[i][1];
whileLabels.whiles[ cycles[i][1] ] = cycles[i+1][1];
cycles.splice( i, 2 );
i = 0;
} else ++i;
break;
case "endwhile":
++i;
break;
}
}
}
Selenium.prototype.continueFromRow = function( row_num )
{
if(row_num == undefined || row_num == null || row_num < 0) {
throw new Error( "Invalid row_num specified." );
}
testCase.debugContext.debugIndex = row_num;
}
// do nothing. simple label
Selenium.prototype.doLabel = function(){};
Selenium.prototype.doGotolabel = function( label )
{
if( undefined == gotoLabels[label] ) {
throw new Error( "Specified label '" + label + "' is not found." );
}
this.continueFromRow( gotoLabels[ label ] );
};
Selenium.prototype.doGoto = Selenium.prototype.doGotolabel;
Selenium.prototype.doGotoIf = function( condition, label )
{
if( eval(condition) ) this.doGotolabel( label );
}
Selenium.prototype.doWhile = function( condition )
{
if( !eval(condition) ) {
var last_row = testCase.debugContext.debugIndex;
var end_while_row = whileLabels.whiles[ last_row ];
if( undefined == end_while_row ) throw new Error( "Corresponding 'endWhile' is not found." );
this.continueFromRow( end_while_row );
}
}
Selenium.prototype.doEndWhile = function()
{
var last_row = testCase.debugContext.debugIndex;
var while_row = whileLabels.ends[ last_row ] - 1;
if( undefined == while_row ) throw new Error( "Corresponding 'While' is not found." );
this.continueFromRow( while_row );
}
下载地址: https://github.com/darrenderidder/sideflow
2)在Selenium中配置插件。如下图所示,添加sideflow.js 到 "Selenium Core extensions (user-extensions.js)" 文本框中,重新启动Selenium IDE。

3) 这样就可以在Selenium中使用流程控制了,例如


- 大小: 49.6 KB

- 大小: 72.5 KB
分享到:
相关推荐
Selenium IDE是基于Selenium框架的,Selenium是一个用于Web应用程序测试的工具套件,支持多种浏览器和多种操作系统,是Web应用测试领域内广泛使用的工具之一。 Selenium IDE的主要功能包括记录用户与浏览器的交互...
Selenium则是一款强大的网页自动化测试工具,能够模拟用户行为,对Web应用程序进行全面的功能验证。这篇分享将深入探讨Python与Selenium结合进行自动化测试的相关知识点。 首先,我们需要理解Python的基础语法和...
- **IDE界面**:介绍Selenium IDE的主要界面和工具栏功能。 - **特性**: - **录制模式**:自动记录用户在浏览器中的操作并生成测试脚本。 - **编辑功能**:提供强大的脚本编辑功能,允许用户修改或添加新的测试...
- Selenium 是一套用于 Web 应用程序测试的工具集合。 - Selenium 支持多种编程语言(如 Java、C#、Python 等)进行测试脚本的编写。 - Selenium 2.0 的更新意味着它不仅增强了功能,而且增加了更多的兼容性和...
测试脚本可以在需要时进行编辑,添加条件判断、循环和其他复杂的逻辑,以满足更高级的测试需求。 自动化测试对于确保Web应用的质量至关重要,因为它能有效地减少手动测试的工作量,提高测试覆盖率,并且可以在每次...
Selenium IDE(集成开发环境)是Selenium测试套件的一个强大工具,专为Web应用程序的功能自动化测试设计。它是一个Firefox浏览器插件,允许用户录制、编辑和回放测试脚本。在"硒IDE附件组件"中,我们主要关注的是...
可用性测试关注用户体验和界面设计,确保Web应用易于使用且直观。 - **导航测试**:检查网站的导航结构是否清晰、直观。 - **UI测试**:评估用户界面的布局、颜色方案和字体选择是否吸引人。 - **可访问性测试**:...
- 在本书中,功能性测试是使用Selenium进行的,Selenium是一种用于自动化浏览器操作的强大工具,特别适合用于测试Web应用。 3. **测试先行原则(Do Nothing Until You Have a Test)**: - 这是TDD的一个基本原则,...
在IT行业中,Selenium是一个广泛使用的自动化测试工具,尤其在Web应用测试方面。它允许开发者模拟用户行为,如点击按钮、填写表单以及执行其他与界面交互的操作。在这个场景中,我们将探讨如何利用Selenium来批量...
例如,先使用SoapUI的内置功能对API进行测试,然后根据API响应的结果来决定是否触发Selenium WebDriver的Web界面测试。 9. **高级技巧**: 为了更高效地管理测试,你可以利用Groovy脚本动态构建测试逻辑,如条件判断...
利用java+selenium技术实现了自动化测试,首先通过获取该网站地址,然后通过元素定位的...利用它,我们可以编写相关的自动化程序,让程序完全像人一样在浏览器里面操作Web界面,比如模拟鼠标点击、模拟键盘输入等等。
结合使用Twill和Selenium,可以构建强大的Web自动化测试方案。Twill适用于快速原型开发和简单的测试场景,而Selenium则适合大型项目和复杂的交互测试。通过`ez_setup.py`安装它们,可以使整个过程更加顺畅。了解和...
### Selenium官方开发文档知识点概述 #### 一、引言与Selenium简介 - **引言**:Selenium作为一款强大的工具集,旨在为...通过学习这些知识,可以更好地掌握Selenium的使用方法,从而有效地进行Web应用的自动化测试。
Selenium IDE是一款功能强大的自动化测试工具,专为Web应用程序设计,旨在简化测试案例的创建与执行过程。这款工具以Firefox附加组件的形式存在,提供了直观的用户界面,使得用户能够轻松地录制和回放测试场景,无需...
在自动化测试领域,Selenium WebDriver 是一款广泛应用的工具,用于模拟用户与Web界面的交互。在某些场景下,比如点击一个链接或者按钮后,新的窗口可能会弹出,这时我们需要让Selenium焦点转移到新窗口以便进行后续...
在IT行业中,压力测试是确保Web应用程序在高负载或大量并发用户访问时依然稳定、高效运行的关键步骤。本文将深入探讨“Web程序压力测试的客户端工具”,并基于提供的标签和资源,来解析这一主题。 首先,我们要理解...
特别是在Web应用程序开发中,基于GUI(图形用户界面)的自动化测试可以帮助开发者快速验证功能,确保产品在各种交互场景下的正确性。本实践课程围绕“Web(基于GUI) 自动化测试”展开,旨在帮助学员掌握自动化测试的...
- **定义**:Web自动化测试是指使用自动化工具和技术来模拟用户与Web应用交互的过程,从而验证应用的功能、性能及可靠性是否符合预期的一种测试方法。 - **目的**:提高测试效率、减少人为错误、确保产品质量。 - **...