【问题标题】:Additional url attribute at nightwatch page object守夜页面对象的附加 url 属性
【发布时间】:2016-07-07 01:08:54
【问题描述】:

我试图在使用 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 或特殊的页面对象概念?

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

【问题讨论】:

    标签: javascript nightwatch.js


    【解决方案1】:

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

    let pageCommands = {
        cancelUrl: function() {
            return this.api.launchUrl + '/content/cancel_site1.xhtml';
        }
    };
    
    module.exports = {
        commands: [pageCommands],
    ...
    }
    

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

    更多关于页面命令here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-24
      • 1970-01-01
      • 2012-05-01
      • 1970-01-01
      • 2011-10-03
      • 2019-06-21
      • 2021-07-14
      相关资源
      最近更新 更多