Javascript 在selenium webdriver中返回未定义的承诺

Javascript 在selenium webdriver中返回未定义的承诺,javascript,selenium,selenium-webdriver,promise,jasmine,Javascript,Selenium,Selenium Webdriver,Promise,Jasmine,此函数返回未定义的元素,而不是元素的大小。我不能用另一种方式写,因为我对承诺不太熟悉。我如何重写它,使它不会返回未定义的,而是已解决的承诺 控制台:预期未定义的值小于未定义的值。 var s1 = utilitiesPageObject.getElemSize("css", "#main-content > div > div > div.col-xs-12.col-md-6.align-left"); driver.findElement(By.css('#main-cont

此函数返回未定义的元素,而不是元素的大小。我不能用另一种方式写,因为我对承诺不太熟悉。我如何重写它,使它不会返回未定义的,而是已解决的承诺

控制台:
预期未定义的值小于未定义的值。

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

您忘记了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
返回一个承诺。

您可以发布HTML,在那里查找元素
“#main content>div>div.col-xs-12.col-md-6.左对齐
?在问题中发现异步调用的@Andreas可能重复?@DomeTune
。然后(s=>{return s}
+”承诺“在标题中,事实上就是这样。getHeight仍然不是一个函数tho,但这是我现在可能能够解决的另一个问题。我不认为函数
getElemSize
符合默认大小写,因为函数符合大小写“css”,然后会断开。我只是输入了一点错别字,就把它改为“选择器”我还必须立即解决getHeight的承诺:我刚刚使用了从getSize()获得的对象的height属性;出于某种原因,我喜欢身高;不再是函数(?),因为您使用了
getHeight
作为对象,请尝试
.getHeight()。然后..