2017-02-06 6 views
0

페이지 개체가 있고 테스트 파일에 사용할 명령을 만들고 있습니다. .elements()와 같은 WebDriver API 명령을 사용할 때 작성한 요소는 전달되지 않고 콜백 함수에서 사용할 수 없습니다.Nightwatch JS의 API 함수 내 요소 사용

예제 코드 :

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

유 사용할 수있는 사용자 정의 함수 내에서 더 일반적인 만들려면 : 내가 더 나은 솔루션이 여기에 게시됩니다 생각 Gona을 경우 div.some-class

:

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

그것이 element1 CSS를 반환해야합니다 덧글