2016-11-16 6 views
1

私は20個のボタンを備えたテーブルを持っています - 半分は無効になっており、残りの半分は有効になっています。有効なボタンを除外してforループ内のすべてをクリックすることは可能ですか? (私がクリックしたい要素 - > class = "fa fa-check") 無効になっているボタンのフィルタリングに問題があります。分度器で有効になっているボタンを除外する方法は?

無効になっているボタンの属性は「無効」で、値は「無効」です。これは有効と無効のボタンの唯一の違いです。

  for (var i = 0; i < numberOfRows; ++i) { //numberOfRows 
       var button = element.all(by.repeater('tulemus in noue')).get(i); 
       button.getAttribute('disabled').then(function(status) { 
        if (I dont know how to verify the right status) { 
          $$('.fa-check').get(i).click(); 
          console.log('enabled element clicked'); 
        } else { 
         console.log(status); 
         console.log('element is disabled'); 
        } 
       }); 
      } 

HTML code for two buttons

答えて

2

あなたはJavaScriptでループに使用してむしろ配列要素に反復する各()を使用することができます。あなたはまた同じことを達成するためにfilter()メソッドを使用することができます

element.all(by.repeater('tulemus in noue')).each(function(button,index){ 
      button.getAttribute('disabled').then(function(status) { 
       if(!status&&index=0){ 
        button.click();//click if button is enabled 
       } 
       else { 
        console.log(status); 
        console.log('element is disabled'); 
       } 
      }); 
     }); 
+0

恐ろしく、ほとんど私のために働く。今私は、前に言及しなかった問題があります。各行に4つの有効な要素があり、各行の最初に有効になっている要素をクリックします。現時点では、テストはそれらのすべてをクリックします。 –

+0

@SanderLepik cool。確かに、私もこの問題を解決するのを助けることができます。過去のUIページを表示できますか? –

+0

ここにhtmlへのリンクがあります:https://www.upload.ee/image/6355342/Capture1.PNG 赤い矢印のボタンを有効にしました。 リストの4番目に有効な要素をクリックする必要があります。 ここにUIの画像があります:https://www.upload.ee/image/6355357/Capture3.PNG 無効な要素と有効な要素が4つあります。「Jah」のボタンのみをクリックする必要があります @SureshSalloju –

1

element.all(by.repeater('tulemus in noue')).filter(function(button){ 
    return button.isEnabled().then(function(isEnabled){ 
     return isEnabled; 
    }) 
}).each(function(enabledButton){ 
     enabledButton.click(); 
}) 
0

あなたはisEnable分度器の機能を使用する必要があります:あなたは以下のコードに従うことができます。これは、ボタンが有効かどうかのブール値を返します。

var enabledButtons = element.all(by.repeater('tulemus in noue')) 
.filter(button => { return button.isEnabled() }); 

をし、そこには、すべての要素のenabledButtons配列に格納されたページ内のボタンを有効にしている: は次のようになり、あなたのコードに適用されます。これでそれらを使用したり、フィルタリングを続けることができます。たとえば、次のような表示可能なボタンのみをフィルタリングすることができます。

var visibleButtons = enabledButtons.filter(button => { return button.isDisplayed() })); 

関連する問題