2016-06-16 2 views
1

分度器では、私は自分のロケータをクリーンアップしようとしています。現在、私は対話のための要素ロケータを含む変数を持っている、とボタンを救う:私は内に保存ボタンを見つけることができるように分度器のより良い位置の要素変数の連結

var StoryPage = function(){ 
    this.dialog = element(by.css('md-dialog')); 
    this.saveButton = element(by.buttonText('Save')); 
} 

私の質問は、チェーンへの道は、これらの要素変数は、存在していますそのようなダイアログ:事前に

this.dialog.saveButton.click() 

または

this.dropdown.saveButton.click() 

ありがとう!

答えて

1

はい、あなたはチェーン分度器で要素ファインダーできます。

var StoryPage = function() { 
    this.dialog = element(by.css('md-dialog')); 
    this.saveButton = this.dialog.element(by.buttonText('Save')); 
} 

Saveボタンがmd-dialog要素内/範囲に/内に配置されることになります。


あなたが複数のページオブジェクトに、あなたは基本ページオブジェクト定義できるという「規模」にしたい場合は、次からあなたの他のページのオブジェクトを継承するプロトタイプ継承を使用し、その後

var BasePage = function() { 
    this.getSaveButton = function() { 
     return this.dialog.element(by.buttonText('Save')); 
    } 
} 

module.exports = new BasePage(); 

var BasePage = require("base"); 

var StoryPage = function(){ 
    this.dialog = element(by.css('md-dialog')); 
} 

StoryPage.prototype = Object.create(BasePage); 

module.exports = new StoryPage(); 
+0

私はあなたがthのような要素を連鎖できることを知っていますで。しかし、 'saveDialogBu​​tton'と' saveDropdownButton'などを作るのではなく、最初の要素の後ろに連鎖する汎用の 'saveButton'を持つことができるのだろうかと思います。 –

+0

@ColmGallagher大丈夫ですサンプルアプローチで更新されました。私たちはまだ同じページにいることを願っています(言葉遊びに気づく:))。 – alecxe

+0

ありがとう!プロトタイプのアイデアはまさに私が必要としていたものです。私はちょうど私の口座を作ったばかりです(それは数年前にしたはずです)が、一度15ポイントを獲得すれば、あなたはその報酬を得ることができます。 –

関連する問題