2017-02-06 24 views
0

私はページオブジェクトを持っていて、テストファイルで使用するコマンドを作成しています。 .elements()のようなWebDriver APIコマンドを使用すると、作成した要素は渡されず、コールバック関数で使用できなくなります。Nightwatch JSのAPI関数内の要素を使用するJS

例コード:

var commands = { 
    command1: function() { 
    var element1 = "div.some-class"; //I end up doing this 
    this.api 
     .elements("css selector", "@element1", function (result) { 
     return this 
      .click("@element2"); 
     }) 
    } 
} 

module.exports = { 
    url: function() { 
    return this.launchUrl; 
    }, 
    elements: { 
    element1: "div.some-class", 
    element2: "h2[id=some-id]" 
    }, 
    commands: [commands] 
} 

私は.APIを呼び出すと、あなたが要素を使用することはできませんので、それを行いますが、この周りにどのような方法があることに気づきましたか?私は自分のコマンドごとに変数を作っていますが、要素を持つという目的を破るような気がします。

答えて

1

uが使用できるカスタム関数の中には、より汎用的にする:

var objectSelector = this.page.pageobject.elements[elementName]

それはelement1 CSS返す必要があります:私はよりよい解決策を考えるゴナ場合div.some-class

はAでそれをここに掲載しますコメント

関連する問題