首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多页段上的nightwatch.js断言

多页段上的nightwatch.js断言
EN

Stack Overflow用户
提问于 2017-04-30 15:25:24
回答 2查看 1K关注 0票数 1

我正在使用nightwatch.js,我有一个页面文件,如下所示:

代码语言:javascript
复制
sections: {
    table: {
        selector: '.sr-filterable-data-layout--collection',
        elements: {
            header: {
                selector: '.sr-collection--header'
            },
            body: {
                selector: 'sr-collection--body'
            }
        }
    },
    filters: {
        selector: '.sr-filterable-data-layout--filters',
        elements: {
            filterByName: {
                selector: '#filter-name'
            }
        }
    },
    actions: {
        selector: '.sr-entities-actions',
        elements: {
            addButton: {
                selector: '.mdi-content-add'
            }
        }
    }
},
commands: [{
        editEntity(options) {
            return this.section.body();
        },
        verifyPageload() {
            return (
                this.section.filters.waitForElementVisible('@filterByName') 
                    .section.table.waitForElementVisible('@header')
                    // .section.actions.waitForElementVisible('@addButton')
                    .assert.title(this.props.title)
            );
        }
    }
]

每个元素上的断言都是独立的,但是当我试图像这样链接断言时:

代码语言:javascript
复制
this.section.filters.waitForElementVisible('@filterByName') 
                    .section.table.waitForElementVisible('@header')

如果出现以下错误,它将失败:

代码语言:javascript
复制
✖ TypeError: Cannot read property 'waitForElementVisible' of undefined

任何关于如何将这些断言链接在一起的帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-03 11:49:43

而这里的评论则提出了规避这一问题的方法。在第一次调用返回页面的根之后,通过链接.parent,我终于偶然发现了在不同部分上链接多个操作的方法,而不是像这样的部分:

代码语言:javascript
复制
verifyPageload() {
            this.section.table
                .waitForElementVisible('@header')
                .parent.section.filters.waitForElementVisible('@filterByName')
                .parent.section.actions.waitForElementVisible('@addButton')
                .assert.title(this.props.title);
            return this;
        }
票数 1
EN

Stack Overflow用户

发布于 2017-04-30 15:38:17

您不能这样做,因为section页面属性,而waitForElementVisible则返回对客户端实例(“浏览器”)的引用,而不是对页面的引用。

只要拆分命令,就没有理由将它们链接起来。

另外,return ()块在这里是多余的,只需直接返回断言结果:

代码语言:javascript
复制
verifyPageload() {
    // waitForStuff...
    return this.assert.title(this.props.title)
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43708032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档