2017-01-31 3 views
0

Эта функция возвращает неопределенный, а не размер элемента. Я не мог написать это по-другому, так как я не знаком с обещаниями. Как мне переписать его, чтобы он не возвращал неопределенное, но разрешенное обещание?Обещание, возвращаемое undefined в selenium-webdriver

консоль: Expected undefined to be less than undefined.

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 функция getElemSize

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; 
    } 
} 
+0

Не могли бы вы разместить HTML-код, где вы ищете элементы '' # main-content> div> div> div.col-xs-12.col-md-6.align-left'? – DomeTune

+0

Возможный дубликат [Как вернуть ответ от асинхронного вызова?] (Http://stackoverflow.com/questions/14220321/how-do-return-the-response-from-an-asynchronous-call) – Andreas

+0

@Andreas Где вы нашли асинхронный вызов в вопросе? – DomeTune

ответ

1

Вы забываете оператор возврата в функции getElemSize:

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 возвращает обещание.

+0

спасибо, что это было на самом деле. getHeight по-прежнему не является функцией tho, но это другое вопрос Я мог бы теперь решить – Fenrir

+0

Я не думаю, что функция 'getElemSize' попадает в случай по умолчанию, потому что функция обращается к случаю« css »и чем перерывы. – DomeTune

+0

только немного опечатка, которую я сделал, я ее изменил на «селектор», и я также должен решить обещание сейчас – Fenrir

Смежные вопросы