如何在Nightwatch.js中的部分上使用命令?

时间:2015-09-11 15:31:44

标签: javascript selenium e2e-testing nightwatch.js

所以基本上我已经开始使用PageObjects而且我遇到了一些问题。

  1. 我想直接在某个部分执行命令。例如 - 我想直接在部分.waitForElementVisible (不在元素上)。它甚至可能吗?我尝试了很多组合,例如:

    browser.page.topMenu()。section.loginBox.section.unauthenticated.waitForElementVisible(' @ loginTooltip',10000)

  2. 所以看起来像这样:topMenu()是我的pageObject文件,然后有loginBox部分包含 - > unauthenticated部分包含 - > loginTooltip部分。我想在最后一节中.waitForElementVisible。这该怎么做?我知道我可以无限制地组合我的部分,但是以后如何处理它们?

    1. [会说这个问题是奖金,因为它与标题中的问题无关] 我在章节中做出断言时遇到问题。这该怎么做?我尝试了很多方法,其中一个方法如下:
    2. browser.page.topMenu().expect.section('@loginBox').to.be.visible - 这很有效 - 因为它只有一个部分

      browser.page.topMenu().expect.section('@loginBox').section('@unauthenticated').to.be.visible - 不起作用 - 我想检查unauthenticated部分内的部分loginBox是否可见。怎么做?

      提前感谢所有答案,我试图自己解决这个问题而没有任何成功。

1 个答案:

答案 0 :(得分:1)

好的,首先让我们将其分解,以便更具可读性:

var topMenu = browser.page.topMenu(); // Declare the page object.
var loginBox = topMenu.section.loginBox; // Declare the first section.
var unauthenticated = loginBox.section.unauthenticated // Declare the second section.

依旧......

一旦你想执行命令,你可以这样做:

loginBox.waitForElementVisible('@unauthenticated');

请注意,应声明节选择器:

sections: {
   unauthenticated: {
      selector: '.unauthenticated_title',
      elements: {
        sectionElements: '.selector_selector'
      }
   },
   anotherSection: {
      ...
   }
}

第二个问题是类似的。

loginBox.expect.element('@ unauthenticated').to.be.visible;