1

これが私のjavascriptコードです(Selenium IDEでは、わかりやすくするために改行とインデントが追加されています):

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';
    }
} 

| | テスト結果

すべての入力の色を確認する必要があります。しかし、Selenium Ide は最後の "INPUT" からのみテストの結果を保存します。テストの途中でエラーが発生すると確信しています。助けてください。私の悪い英語でごめんなさい

4

2 に答える 2

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;
  }
}
于 2012-05-17T09:55:55.400 に答える
1

変更する必要があるもの:

  • testResultデフォルト値が与えられます
  • ループbreakを停止するために、テストが失敗したときにaが追加されます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
        }
    }
}
于 2012-05-17T09:57:04.637 に答える