0

フォームにコンボ ボックスがあり、テスト ケースを実行するたびに、selenium ide がコンボ ボックス リストからランダムな値を選択するようにします。

セレンにはこれがあります:

Command: store
Target: javascript{Math.floor(Math.random())}
Value: man

そして次のステップで:

Command: select
Target: id of combo box
Value: ${man}

しかし、テストケースを実行すると; エラーが発生します。

「[エラー] ラベル「0」のオプションが見つかりません」。

どうすればこのタスクを達成できますか。

4

1 に答える 1

1

あなたの Java スクリプト コードは、結果を常に 0 として返しています。Java スクリプトが機能するには、わずかな変更が必要です。次のコードを使用します。

コマンド: storeターゲット: javascript{Math.floor(Math.random()*3)}値: man

これにより、実行ごとに 0 から 2 の間のランダムな値が与えられます。式で使用される値 3 は変数であり、ComboBox 内のアイテムの数を表します。ComboBox に 6 つの項目がある場合、3 を 6 に置き換える必要があります。

次の行は、id 値に基づいて ComboBox アイテムを選択することです。

コマンド: selectターゲット: css=select値: id=${man}

ただし、キャッチがあります。これが機能するためには、すべてのタグに増分数値 0、1、2 などの id 属性が必要です。

例えば、

<select>
  <option id="0">Milk</option>
  <option id="1">Tea</option>
  <option id="2">Coffee</option>
</select>

または、あなたが書いた方法で動作するようにするには、つまり、

コマンド: selectターゲット: css=select値: ${man}

次に、ComboBox は 0、1、2、3 などから増加する値を持つ必要があります。たとえば、HTML コードは次のようになります。

<select>
  <option>0</option>
  <option>1</option>
  <option>2</option>
</select>

アップデート


あなたの最新の回答に従って、式を修正しましたが、うまくいきます。

コマンド: storeEvalターゲット: {var myList=new Array(111,222,333,444,888,999,555,777,221,"ADA","AD"); myList[Math.floor(Math.random()*11)]}値: myListVal

コマンド: selectターゲット: css=select値: ${myListVal}

詳細

{var myList=new Array(111,222,333,444,888,999,555,777,221,"ADA","AD"); myList[Math.floor(Math.random()*11)]}

  1. 配列myListを作成し、リストに必要な値を格納しました。
  2. 11 個のリスト項目があるため、0 から 10 までの値をランダムに生成する数式 Math.floor(Math.random()*11) を作成しました。
  3. Selenium-IDE から実行すると、myList配列のインデックス値は 0 から 10 までランダムに変化します。また、myList のさまざまな配列値が変数myListValに格納されます。
于 2013-03-21T14:18:13.650 に答える