链接元素变量以便在量角器中更好地定位

Chaining element variables for better location in protractor

在量角器中,我试图清理我的定位器,并更好地组织事情。目前,我有一个包含对话框元素定位器和保存按钮的变量:

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

我的问题是,有没有办法链接这些元素变量,这样我就可以在对话框中找到保存按钮,如下所示:

this.dialog.saveButton.click()

this.dropdown.saveButton.click()

提前致谢!

是的,您可以链接量角器中的元素查找器:

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

现在 Save 按钮将位于 within/in scope/inside md-dialog 元素。


如果你想"scale"到多个页面对象,你可以定义一个基页面对象:

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();