2016-10-21 13 views
0

もう一度、この質問は簡単かもしれないし、すでに質問されているかもしれませんが、私はこれに対する答えを見つけることができません。私が得るのは、要素がクリック可能かどうかをチェックすることですが、それは私のためには機能しません。 要素が有効になるまで要素を待機する簡単な解決法はありますか?私は自分のアプリケーションでドロップダウンのセットを持っており、他のドロップダウンは以前のドロップダウンで値が選択されているときだけ選択可能になります。 以下のコードを試しましたが、動作しません。要素が有効になるのを待つ

var element = element(by.css('[id*="uxSeries"] select')); 
browser.wait(protractor.ExpectedConditions.elementToBeClickable(element), 10000); 
私は取得しています

エラーメッセージ:失敗しました

を:古い要素の参照を:

:要素は、それが有効になって取得する前に、ドロップダウンのためのページ 文書

HTMLに添付されていません

<select name="GalleryControl$uxSeries" onchange="OnChangeScript" id="uxSeries" disabled="disabled" style="width:215px;"> 
     <option selected="selected" value="">All Series</option> 
     <option value="Value1">Option1</option> 
     <option value="Value2">Option2</option> 
     <option value="Value3">Option3</option> 
     <option value="Value4">Option4</option> 
     <option value="Value5">Option5</option> 
    </select> 

私の最初のdrで値を選択した後opdown、disabled = "disabled"プロパティはドロップダウンから外れます。 ブラウザが有効になるか、無効のプロパティがなくなるまでブラウザを待つことはできますか?

+0

あなたの例では? –

+0

@FlorentB。 idで要素を選択しています。 – NewWorld

+0

私はロケータが正しくないと思うのですが、なぜあなたは要素(by.css( "select#uxSeries")); 'または'要素(by.id( "uxSeries")); '?? –

答えて

0

失敗しました:古い要素参照:あなたが、私は自分のアプリケーションや他の中のドロップダウンで設定したを言っているよう要素は、

この例外が原因要素の変更に発生したページの文書に添付されていません以前のドロップダウンで値が選択された場合にのみドロップダウンが選択可能は有効になったときにその位置を変更したり、属性値がdisabled属性に変更されている可能性があります。

あなたはそれが中に以下のような状態を有効にするときに、もう一度、この要素を見つけ、この要素がprotractor.ExpectedConditions.stalenessOf()を使用して無効になった状態から古くなるまで待つように最初に試す必要があります: - element` `のセレクタは何

var EC = protractor.ExpectedConditions; 

#find disabled select element first 
var disabledSelect = element(by.css("select#uxSeries[disabled='disabled']")); 

#now wait until this becomes stale from disabled state 
browser.wait(EC.stalenessOf(disabledSelect), 10000); 

#now find enabled select element 
var enabledSelect = element(by.css("select#uxSeries")); 

#now do your further steps 
+0

私にとってはうまくいきません。 'Failed:無効な要素状態 (セッション情報:chrome = 54.0.2840.71)' – NewWorld

関連する問題