【问题标题】:Using pages object in Nightwatch JS在 Nightwatch JS 中使用 pages 对象
【发布时间】:2015-11-03 00:15:09
【问题描述】:

我正在使用守夜人“0.8.6”。根据页面上的文档,我创建了一个 pages/login.js 文件并将目录添加到配置文件中:

module.exports = {
  url: function() {
    return this.launchUrl;
  }
};

文档中提到了this.api,但这不是客户端/浏览器的属性。不过,this.launchUrl 显然是可用的。

我更改了现有测试以使用它:

module.exports = {
  'Login page has a login button' : function (browser) {
    browser
      .url(browser.page.login().url())
      .waitForElementVisible('body', 10000)
      .assert.containsText('button', 'SIGN IN')
      .end();
  }
}

测试现在失败。 .url 尝试使用data:, 打开 selenium,而不是 this.launchUrl 的值,即 localhost:3000。

页面对象显然是在登录测试的上下文中评估的,所以页面对象中的 this 应该有 this.launchUrl。潜入源代码,我发现其中还有页面包装器对象,不知何故。

如何在 0.8.6 中正确使用创建和使用页面对象?

【问题讨论】:

    标签: javascript nightwatch.js


    【解决方案1】:

    我认为您可以尝试添加一个 var 来调用 login.js 页面。 像这样:

    module.exports = {
      'Login page has a login button' : function (browser) {
    
        var LoginPage = browser.page.login();
            LoginPage.navigate();
    
            LoginPage
             .waitForElementVisible('body', 10000)
             .assert.containsText('button', 'SIGN IN')
             .end();
      }
    }
    

    【讨论】:

    • 我只能回到这个问题上。不知道它是否给了你赏金,如果不让我知道,我会弄清楚怎么做的
    【解决方案2】:

    因此,根据文档,您必须: - “每个页面对象应位于一个单独的文件中,位于指定文件夹中。Nightwatch 从page_objects_path 配置属性中指定的文件夹(或多个文件夹)中读取页面对象。”

    您是否配置了page_objects_path 目录?

    完成此操作后,您可以在该文件夹中创建一个 js 文件,例如:

    module.exports = function(client) {
      return {
        gotoUrl: function() {
          return client
            .url(client.launchUrl);
        },
      };
    };
    

    然后你可以像这样编写你的测试:

    module.exports = {
      'Login page has a login button': (browser) => {
        browser.page.pagescriptname()
          .gotoUrl()
          .waitForElementVisible('body', 10000)
          .assert.containsText('button', 'SIGN IN')
          .end();
      }
    }
    

    确保您已在 nightwatch.js 文件中配置了 launch_url(或者可以通过 nightwatch.conf.js 文件动态更改(我为我的项目所做的)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-15
      • 1970-01-01
      • 2011-07-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多