2017-04-10 6 views
0

내가 useing nightwatch 자동화 된 테스트를 원하는 :nightwatch.js에서 executeAsync를 사용하는 방법?

module.exports = { 
    'Demo asynchronous' : function(client){ 
     client.url(client.launchUrl); 
     client.executeAsync(function(data, done) { 
      someAsyncOperation(function() { 
       client.setValue('#PoiSearch', data); 
       client.click('#POISearchButton'); 
       done(true); 
     }); 
     }, ['hotle'], function(result) { 
      client.expect.element('#Map div[name*="mark"]').to.be.present; 
     }); 
    } 
} 

난 그냥보다 입력에 단어를 원한다 :

this.demoTest = function (browser) { 
    browser.executeAsync(function(data, done) { 
     someAsyncOperation(function() { 
     done(true); 
    }); 
    }, [imagedata], function(result) { 
     // ... 
    }); 
}; 

하지만 executeAsync를 사용하는 방법을 모른다, 흐르는 내 코드입니다 결과적으로 DOM에 특별한 요소가 있다는 것을 알고 싶다면 검색 버튼을 클릭하십시오. 그러나 executeAsync를 사용하는 방법을 모르겠습니다.

답변

1

executeAsync에 전달하는 기능은 제어중인 브라우저 (예 : 노드/셀렌 컨텍스트에서 다른 모든 항목이 실행되는 자바 스크립트 콘솔)에있는 것처럼 실행됩니다. .

```

module.exports = { 
    'Demo asynchronous' : function(client){ 
     client.url(client.launchUrl); 
     client.executeAsync(function(data, done) { 
      // start executing in the browser, no access to outside variables 
      someAsyncOperation(function() {     
       done(true); 
      });    
     }); 
     // end executing in the browser, back in the node context 
     client.setValue('#PoiSearch', 'hotle'); 
     client.click('#POISearchButton');; 
     client.expect.element('#Map div[name*="mark"]').to.be.present; 
    } 
} 
다음 executeAsync 기능의 내부 client 변수는

당신이 nightwatch API를 사용하여 해당 필드를 채우기 위해 대기 할 경우

, 당신은 더 많은 뭔가를 할 수

```