2016-08-23 12 views
0

私のPageオブジェクトファイル:別のページ・オブジェクトを戻しているページ・オブジェクトから約束が解決されるのを待つ方法はありますか?

this.clickTheProvidedValueInCompanyInformation = function (item) { 
    this.innerMenu = this.companyInformation.all(by.className('innermenu')).first();  
    this.selectedItem = this.innerMenu.all(by.tagName('li')).filter(function (elem, index) { 
     return elem.getText().then(function (text) { 
      return text.toUpperCase().replace(/ |-/g, '') === item.toUpperCase().replace(/ |-/g, ''); 
     }); 
    }); 
    this.selectedItem.click(); 
    this.selectedItem.getText().then(function (text) { 
     var option = text.toString(); 
     var pageObject = option.replace(/ /g, '_').toLowerCase(); 
*******return require('./' + pageObject + '.page.js');********** 
    }) 
}; 

これは私のspecファイルから行です:あなたが見ることができるよう

var generalInfo = pageObject.clickTheProvidedValueInCompanyInformation('generalInformation'); 

pageObject.clickTheProvidedValueInCompanyInformation('generalInformation')への呼び出しは、別のPageオブジェクトを返します。

私は私のスペックで私generalInfo変数にアクセスしようとすると、それはgeneralInfoが、私はgeneralInfo変数を経由して私の返却Pageオブジェクトにアクセスできること.what

を定義されていないエラー

をスローします。

return require('./anotherPageObject.js')をgetText()の外に置くと正常に動作しますが、テキストに適切なページオブジェクトファイルを返すように命名規則を変更する操作が必要です。 ( 'general_information.page.js'という名前のpageobjectファイルを返す)

+0

お近くのtechsupportに連絡してください:あなたのキーボードは明らかにCapsLockキーを係合するタイトルを入力するときに... –

+0

@MarcBページングconvertcase.net最後の約束を返すようにreturnステートメントを追加します。 – stuartd

答えて

2

メソッドthis.clickTheProvidedValueInCompanyInformationは何も返しません。

this.clickTheProvidedValueInCompanyInformation = function (item) { 
    this.innerMenu = this.companyInformation.all(by.className('innermenu')).first();  
    this.selectedItem = this.innerMenu.all(by.tagName('li')).filter(function (elem, index) { 
     return elem.getText().then(function (text) { 
      return text.toUpperCase().replace(/ |-/g, '') === item.toUpperCase().replace(/ |-/g, ''); 
     }); 
    }); 
    this.selectedItem.click(); 
    return this.selectedItem.getText().then(function (text) { 
     var option = text.toString(); 
     var pageObject = option.replace(/ /g, '_').toLowerCase(); 
     return require('./' + pageObject + '.page.js'); 
    }); 
}; 
pageObject.clickTheProvidedValueInCompanyInformation('generalInformation').then(function(page){ 
    console.log(page); 
}); 
関連する問題