2016-12-10 20 views
0

私はSelenium IDEを使用しています。私が使用しているデータファイルには、同じキーに対する複数の参照があります。Selenium IDEで配列内のすべての等価キーを見つける

私は、以下のタイプの情報を持つ配列があります。私は、キー「グリーン」のインデックスを取得するには、このセレンのコードを使用しています

<tr> 
<td>storeEval</td> 
<td>new Array('green','blue','green','red');</td> 
<td>Array1</td> 
</tr> 

:このセレンコードを使用して作成した

Array1: ['green','blue','green','red'] 

を(結果は期待どおり0だった):

<tr> 
<td>echo</td> 
<td>javascript{storedVars['Array1'].indexOf("green")}</td> 
<td></td> 
</tr> 

しかし、私はまた、トマトを参照する必要があります、私はtr私は、この試み

<tr> 
<td>echo</td> 
<td>javascript{storedVars['Array1'].indexOf("green")[1]}</td> 
<td></td> 
</tr> 

(結果は0であった、2予想):キーstoredVars['Array1'].indexOf("green")]の2番目のインスタンスを参照するために、これをIED(これは、 'NULL' であった2予想)

<tr> 
<td>echo</td> 
<td>javascript{storedVars['Array1'].indexOf("green",1)}</td> 
<td></td> 
</tr> 

それSeleniumまたはjavascriptがindexOfの開始変数を無視しているようですが、これはJavascript 1.6からサポートされていたことを理解しています。最新のFirefox(バージョン50)を使用しています

私は指針や提案を感謝します。あなたのような私はfromIndexのが尊重されるように得ることができない、

<tr> 
    <td>echo</td> 
    <td>javascript{storedVars['Array1'].lastIndexOf('green')}</td> 
    <td></td> 
</tr> 

しかし:

答えて

0

私の解決策は、配列を作成し、セレンからループを移動させることの利点これは、アレイ内の複数の参照を取得する完全な目的を提供する。JavaScript関数(高速)に(遅い)。

Selenium.prototype.doGetCommonDisabilityArray = function(key,record){ 
var result = storedVars.obj2[key]; 
if (result == null) { 
storedVars[record]=[]; 
return; 
} 
storedVars[record]=result; 
} 

見つかりませキーが存在しない場合の上記向き、配列を作成します。ようにセレンIDEで使用してください:

<tr> 
<td>addToDisabilityArray</td> 
<td>${NAT090ClientIdentifier}</td> 
<td>${NAT090DisabilityTypeIdentifier}</td> 
</tr> 

Selenium.prototype.doAddToDisabilityArray = function(key,record) { 

    var children; 
    if (key in storedVars.obj2) { 
     children = storedVars.obj2[key]; 
    } else { 
     children = []; 
    } 
    children.push(record); 
    storedVars.obj2[key] = children; 
    } 

どこ:

doAddToDisablityArrayキーは私が価値ある

セレンIDE内で呼び出される関数であります探しているのは

obj2がこの形式のセレンIDEで

使用キー参照の一時的な配列である:

<tr> 
<td>getCommonDisabilityArray</td> 
<td>${NAT120ClientIdentifier}</td> 
<td>CommonDisabilityListArray</td> 
</tr> 

注ユーザーextension.jsがセレン内で参照されたことを確認することが重要だったことIDEを 'Selenium Core Extensions'として使用しなければ、関数間の変数にアクセスすることができませんでした。

0

は、これはあなたが求めているものを正確ではありませんが、それは動作しません。私はここに行きました:http://jsfiddle.net/Ac6CT/私のJSバージョンを検出するためには、1.5(FF 50.1.0)

+0

私のバージョンも1.5 0と確認されました。私のソリューションは最終的にユーザー拡張ファイル内に関数を作成することになりました。それが他人を助ける場合に備えて私はそれを投稿します... –

関連する問題