nightwatch页面对象的附加url属性

时间:2015-12-07 09:54:09

标签: javascript nightwatch.js

我正在尝试在使用nightwatchjs时将其他url属性作为函数添加到我的页面对象中。

像:

module.exports = {
  url: function() {
      return this.api.launchUrl + '/content/site1.xhtml';
  },
  cancelUrl: function() {
      return this.api.launchUrl + '/content/cancel_site1.xhtml';
  }
}

无论如何,nightwatch无法获得第二个属性cancelUrl,即未定义。

为什么会这样? nightwatch不应该能够访问该属性,因为它只是一个返回字符串的函数调用,或者我误解了javascript或特殊的页面对象概念?

- 我知道每个站点都应该有一个页面对象,所以不应该有第二个站点。无论如何,我想了解为什么这在技术上不起作用。

1 个答案:

答案 0 :(得分:1)

不确定我能回答"为什么" (除了说当nightwatch将你的页面对象加载为全局可用时,它必须包装你的js文件并过滤已知的功能)但我可以提供一个解决方案:向你的页面对象添加一个命令具有所需的功能。例如:

let pageCommands = {
    cancelUrl: function() {
        return this.api.launchUrl + '/content/cancel_site1.xhtml';
    }
};

module.exports = {
    commands: [pageCommands],
...
}

这不是页面命令的典型用法,但您的测试将能够访问页面对象实例上的cancelUrl函数。

更多页面命令here