2017-04-24 1 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(); 
          }) 

        }); 
       }); 
      }); 

그리고 그것은 오류 "실패가 발생합니다 :

나는이 약속으로 인해하지만 코드 중 하나에 의해 약속 하나를 해결하는 방법을 잘 알고 정의되지 않은의 속성을 읽을 수 없습니다 '캔버스'. 다음은 마지막을 위해 다른 모든 약속 해결 그래서 여기에 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

감사합니다! 많이...:) –