2017-03-22 5 views
0

동적으로 생성 된 URL로 브라우저를 열려고합니다 (먼저 accessToken을 가져와 URL에 포함해야 함) -browser.url (url) - 브라우저가 콜백 함수에서 열리지 않습니다.

openDocument(browser,username,password) { 
    this.getAccessToken(username,password,(accessToken) => { 
     var url = browser.launch_url.replace("accessTokenValue",  accessToken); 
     browser.url(url); 
    }) 
} 

client.url (url)이 콜백 함수의 일부인 경우 브라우저가 열리지 않습니다. 콜백 함수 외부로 이동하면 제대로 작동하고 브라우저가 열립니다. (아직 accessToken이 없습니다.)

+0

openDocument 및 getAccessToken이 반환하는 것은 무엇입니까? –

답변

0

저는 Nightwatch에 다소 익숙하지만 저는 비동기 작업을 콜백 또는 (의사가 말한 것처럼) "다른 명령으로 설정된 변수 읽기"를 사용하면 browser.perform을 사용하여 이벤트 완료를 관리 할 수 ​​있습니다. 다음은 콜백에서 .url 호출을 사용한 작업 예제입니다.

module.exports = { 
    'example' : function(browser) { 
     var getAccessToken = function(fn) { 
      setTimeout(fn, 1000); 
     }; 
     browser 
      .perform(function(client, done) { 
       getAccessToken(function() { 
        client.url("http://stackoverflow.com", done); 
       }); 
      }) 
      .waitForElementVisible("#mainbar"); 
    } 
}