2017-04-24 9 views
1

ドロップダウンをクリックすると、要素があるシナリオがあります。だから私はドロップダウンの各値を1つずつ選択しなければならない。 1つの値が選択されてからドロップダウンが閉じられた後、再びドロップダウンを開き、2番目の値を選択する必要があります。分度器を使用してドロップダウンリストのすべての値を選択する方法

ここに私が試したコードです。

this.allZoomTimeValues.each((value)=>{ 
        browser.driver.sleep(3000) 
       console.log("1") 
       value.getText().then(a=>{ 
        console.log("2") 
        this.buttonCross.click().then(function(){ 
         console.log("3") 
          browser.driver.sleep(3000).then(function(){ 
           console.log("4") 
            browser.actions().mouseMove(this.canvas.get(0), {x: 10, y: 80}).click().perform(); 
          }) 

        }); 
       }); 
      }); 

そしてそれは、に失敗しました」というエラーがスローされます。プロパティを読み取ることができません未定義

の 『キャンバス』私は、これはコードのいずれかで約束1を解決する方法がわから約束によるものではなく、知っています。 は、ここでは、最後の1のために、他の全ての約束が解決されているので、ここですべての10個の値が返されます

1 
1 
1 
1 
1 
1 
1 
1 
1 
1 
2 
3 
4 
F 

と表示されて出力されます。

だからドロップダウン

答えて

1

それは約束ですので、それはだのそれぞれの値を選択する方法で私を助けてください、と 約束リゾルバハンドラは次のスレッドで呼び出される前に、ループは、すべての値を介して実行されます。

はこれを試してみてください。

a(0); 
 

 
function a(index) { 
 
let value = this.allZoomTimeValues[index]; 
 
if (!value) {return;} 
 
browser.driver.sleep(3000) 
 
       value.getText().then(a=>{ 
 
        this.buttonCross.click().then(function(){ 
 
          browser.driver.sleep(3000).then(function(){ 
 
            browser.actions().mouseMove(this.canvas.get(0), {x: 10, y: 80}).click().perform(); 
 
\t \t \t \t a(++index); 
 
          }) 
 

 
        }); 
 
       }); 
 
}

+0

感謝を!たくさん...:) –

関連する問題