이 함수는 요소의 크기 대신 정의되지 않은 값을 반환합니다. 나는 약속에 익숙하지 않았기 때문에 다른 방식으로 그것을 쓸 수 없었다. 정의되지 않았지만 약속 된 약속을 반환하지 않도록 어떻게 다시 작성합니까?약속이 셀레늄 webdriver에서 반환되지 않음
콘솔 :
getElemSize(css, elem){
switch(css) {
case 'css':
return this.driver.findElement(By.css(elem)).getSize().getHeight.then(s => {return s});
break;
case 'xpath':
return this.driver.findElement(By.xpath(elem)).getSize().getHeight.then(s => {return s});
break;
default:
return Promise.reject();
}
}
는 이제 getElemSize
이 약속을 반환
var s1 = utilitiesPageObject.getElemSize("css", "#main-content > div > div > div.col-xs-12.col-md-6.align-left");
driver.findElement(By.css('#main-content > div > div > div.col-xs-12.col-md-6.align-left > div.slide-down-container > div.slide-down-btn.btn')).click()
var s2 = utilitiesPageObject.getElemSize("css", "#main-content > div > div > div.col-xs-12.col-md-6.align-left")
expect(s1).toBeLessThan(s2);
및 utilitiesPageObject에서 Expected undefined to be less than undefined.
이 기능을 사용하면 getElemSize 함수에서 return 문을 잊지
getElemSize(css, elem){
switch(css) {
case 'css':
this.driver.findElement(By.css(elem)).getSize().getHeight.then(s => {return s});
break;
case 'xpath':
this.driver.findElement(By.xpath(elem)).getSize().getHeight.then(s => {return s});
break;
default:
return null;
}
}
"main-content> div> div> div.col-xs-12.col-md-6.align-left' 요소를 찾고있는 곳에 HTML을 게시 할 수 있습니까? – DomeTune
가능한 중복 [비동기 호출 응답을 어떻게 반환합니까?] (http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call) – Andreas
@Andreas Where 당신은 질문에서 비동기 호출을 발견 했습니까? – DomeTune