2017-01-14 10 views
0

インターンjsでUIオートメーションテストを作成しようとしていますが、ページが完全にロードされるまで待つことに問題があります。私のコードは、ページがロードされる前に要素の検索を開始します。私はこれを手伝ってくれますか?ページが完全にセレンとインターンをロードするまで待つ

マイコード:

define([ 
'intern!object', 
'intern/chai!assert', 
'Automation/ConfigFiles/dataurl', 
'Automation/pages/login/loginpage', 
'intern/dojo/node!fs', 
'intern/dojo/node!leadfoot/helpers/pollUntil' 
], function (registerSuite, assert,dataurl, LoginPage,fs,pollUntil) { 
registerSuite(function() { 
    var loginPage; 
    var values; 
    return { 

     setup: function() { 
      var data = fs.readFileSync(loginpage, 'utf8'); 
      json=JSON.parse(data); 
      console.log('###########Setting Up Login Page Test##########') 
      this.remote 
       .get(require.toUrl(json.locator.URL)) 
      .then(pollUntil(this.remote.findById('uname').isDisplayed(),6000)// here i want to wait until page is loaded 
     .waitForDeletedByClassName('loading').end().sleep(600000)// here i want to wait until loading component is disappered 



      values = json.values; 
      loginPage = new LoginPage(this.remote,json.locator); 

     }, 

     'successful login': function() { 
      console.log('##############Login Success Test############') 
      return loginPage 
       .login(values.unamevalue,values.pwdvalue) 

     }, 

     // …additional tests… 
    }; 
    }); 
}); 

私はpollUntilを使用しようとしてメートル。しかし、私はそれを使うべきかどうかは気にしない。

答えて

0

pollUntilはここで使用するといいですが、実際にポーリングが完了するのを待っているようには見えません。また、あなたはLoginPageクラスチェーンを渡すことができ

var setupPromise = this.remote 
    .get(require.toUrl(json.locator.URL))... 
values = json.values; 
loginPage = new LoginPage(this.remote, json.locator); 
return setupPromise; 

::あなたのsetup方法はインターンが、それは、何かを待つ必要がある知っているようにpollUntilを含むコマンド・チェーンを返す必要がある

var setupPromise = this.remote 
    .get(require.toUrl(json.locator.URL))... 
values = json.values; 
loginPage = new LoginPage(setupPromise, json.locator); 

この場合、インターンはセットアップが完了するのを待たずに、loginPageコードは暗黙のうちにsetupPromiseが完了するのを待ってから何か他のことをします。これはうまくいくが、意図は先の例のようにはっきりしない(例えば、一連のセットアッププロセスが完了するのを待つ必要がある)。

+0

おかげさまで@ jason0x43私は約束を返す必要があることを考え出し、コード待ちを待っています。私は答えとしてこれを受け入れています。 – CodeBlooded

関連する問題