2016-08-12 4 views
0

내가 노력하고 있어요 :nightwatchjs : 루프가 제공하는 동안 사용 "- 프로세스가 메모리 부족"

while(browser.assert.elementPresent("div[school-addlimit='2']>button[disabled='disabled']")!=null){ 
      createSchoolPage 
       .click_add_button(); 
     } 

을 내가 조건을 사용하지 않고 for 루프를 사용하는 경우, 그것을 잘 작동합니다.

내가 뭘 잘못하고 있니?

+1

은 HTML과 click_add_button 기능을 게시하시기 바랍니다 사용합니다. – 10100111001

답변

0

browser.assert.elementPresent 반환 참조 당신이 요소가 페이지에 표시합니다 있는지 확인하려면 그 때문에의 browser.assert.elementPresent(".....") .click("......") .doAnotherAssertion("....") 처럼 명령, 루프가

부정사이다 체인 수, 그렇다면, 다음을 클릭합니다 그래서 객체 browser에 거기에, 그 방법으로 그것을 수행

var selector = "div[school-addlimit='2']>button[disabled='disabled']"; browser.element('css selector', selector, function(response) { if (response.status !== -1) { createSchoolPage.click_add_button(); } })

또는

0 element가 DOM에있을 때 12,341,

갱신

내가 3 가능성을 볼 수 있지만이 not clickable입니다 :
이 * 버튼이 다른 요소에 의해 가리킬
*이 단추를 사용할 수 없습니다
* 버튼을 DOM에 있지만 그것을하지 않습니다 버튼을 상단

에있는 경우 첫 번째 경우에

볼 수, 당신은 확인 https://developer.mozilla.org/en-US/docs/Web/API/Document/elementFromPoint를 사용할 수있다 두 번째 경우에는 CSS 선택기를 업데이트하여 element that is not disabled (예 : https://stackoverflow.com/a/9207343/787828) (또는 요소를 찾은 다음 해당 속성을 확인) 세 번째 경우

, browser.waitForElementVisible

+0

@nimus'response.status'는 요소가 항상 dom에서 사용 가능하기 때문에 항상 true로 표시됩니다. 'response.clickable'과 같은 것을 확인하는 법? 감사합니다. – paul