2016-06-16 26 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(); 

然後,使用原型繼承繼承從其他網頁對象基地之一,這將允許你有save按鈕在不同的對話框容器內:

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分,我會確保你得到你應得的滿足。 –