在nightwatch.js中调用自定义命令

时间:2019-03-05 14:35:52

标签: command nightwatch.js add-custom-command

好吧,所以我想做的是在nightwatch.js中的另一个自定义命令中调用一个自定义命令(目的是使测试不那么脆弱)。

例如,在我的第一个自定义命令( message1.js )中,我可能具有以下代码;

exports.command = function(browser) {
  this
    browser
      console.log('display this first')
  return this;

,随后在第二个自定义命令( message2.js )中,我想先调用 message1.js 命令,然后执行其余代码。

例如;

exports.command = function(browser) {
 this
   browser
     //call the message1.js command
       console.log('display the second message')
 return this;

我尝试用方法调用它;

exports.command = function(browser) {
  this
    browser
      .message1();
        console.log('display the second message')
  return this;

但这没用。

所以我的问题是;

是否可以在另一个自定义命令中调用一个自定义命令 如果没有,还有另一种方法吗?

非常感谢

1 个答案:

答案 0 :(得分:0)

是的,您可以将自定义命令链接在一起或与其他守夜方法链接:

自定义方法openUrl.js

exports.command = function(url) {
    const browser = this;    
    browser.url(url);
    return this;

}

调用openStackOverflow.js的自定义方法openUrl.js

exports.command = function(url) {
    const browser = this;
    browser.openUrl(url).waitForElementVisible('#submit-button');
    return this;
    }

在测试中使用它们:

'Open Stack Overflow': browser => {
    browser.openStackOverflow(`https://stackoverflow.com`);
 },