如何在错误后停止循环“FOR”

时间:2012-05-17 09:49:31

标签: javascript selenium ide

这是我的javascript代码(在Selenium IDE中,为了清晰起见添加了换行符和缩进):storeEval |

var input = window.document.getElementsByTagName('input');
for(var i = 0; i<input.length; i++)  {
    if(window.document.defaultView.getComputedStyle(input[i]).getPropertyValue('background-color') == 'rgb(204, 230, 255)') {
        testResult='passed';
    } else {
        testResult='failed';
    }
} 

| TestResult中

我需要检查所有输入的颜色。但Selenium Ide仅从最后一个“INPUT”存储测试结果。我确定在测试过程中有错误。请帮忙。抱歉我的英文不好

2 个答案:

答案 0 :(得分:2)

var input = window.document.getElementsByTagName('input');
var testResult = 'passed';
for(var i = 0; i<input.length; i++)  {
  if(window.document.defaultView.getComputedStyle(input[i]).getPropertyValue('background-color') != 'rgb(204, 230, 255)') {
    testResult = 'failed';
    break;
  }
}

答案 1 :(得分:1)

你应该修改什么:

  • testResult被赋予默认值
  • 在测试失败时添加break以停止for循环
  • 判断您是在处理收音机,复选框还是其他类型的输入

以下是您的代码更新:

var input = window.document.getElementsByTagName('input'); 
testResult = 'passed'; // <-- set a default value for 'testResult'
for (var i = 0; i < input.length; i++) {
    var bgColor = window.document.defaultView.getComputedStyle(input[i]).getPropertyValue('background-color');
    var inputType = input[i].type;

    if (inputType === 'radio' || inputType === 'checkbox') {
        if (bgColor !== 'rgb(r, g, b)') { // change the value to the desired one
            testResult = 'failed';
            break; // <-- this is what you need to break the 'for' loop
        }
    }
    else {
        if (bgColor !== 'rgb(204, 230, 255)') {
            testResult = 'failed';
            break; // <-- this is what you need to break the 'for' loop
        }
    }
}