2017-04-24 86 views
1

我有一個場景,其中有一個元素通過單擊哪個下拉列表打開。所以我必須逐個選擇每個下拉列表的值。所以選擇一個值,然後關閉下拉菜單,然後再次打開下拉菜單並選擇第二個值等等,每次選擇後我需要執行一些操作。如何使用量角器選擇下拉列表的所有值

這裏是我試過的代碼。

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 
1 
1 
1 
1 
1 
1 
1 
1 
2 
3 
4 
F 

所以在這裏將返回所有10個值和最後一個其他所有的承諾都解決了其中顯示輸出。

所以,請幫我在如何選擇下拉

回答

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

謝謝!很多...:) –

相關問題