Javascript 量角器-从另一个函数使用一个函数值时出现的问题

Javascript 量角器-从另一个函数使用一个函数值时出现的问题,javascript,protractor,Javascript,Protractor,您好,我是一个新的量角器,我有以下两个函数,第一个函数是返回一个承诺,我想在第二个函数中使用它来检索值并使用它 getColumnNumber(columnName) { this.eh.waitForElement(this.GridsEleMap.get("HeaderTableHeaderRow")); var colEle = this.GridsEleMap.get("HeaderTableHeaderRow").all(by.xpath(".//td/

您好,我是一个新的量角器,我有以下两个函数,第一个函数是返回一个承诺,我想在第二个函数中使用它来检索值并使用它

getColumnNumber(columnName) {
        this.eh.waitForElement(this.GridsEleMap.get("HeaderTableHeaderRow"));
        var colEle = this.GridsEleMap.get("HeaderTableHeaderRow").all(by.xpath(".//td//div[contains(@class,'text-content')]"));
        return colEle.getText().then(function (text) {
            var actIndex = text.indexOf(columnName) + 1;
            logger.info("Column Index:" + actIndex);
        });
    }

clickRowElementUsingRowTextAndColumnName(rowText, columnName) {
    var ele = this.GridsEleMap.get("BodyTable");
    return this.getColumnNumber(columnName).then(function (result) {
        logger.info("Text:" + result);
        var cellEle = ele.all(by.xpath(".//tr//td[" + result + "]//div[@class='virtualLink']"));
        logger.info("Result:" + cellEle);
        return cellEle.filter(function (elem) {
            browser.actions().mouseMove(elem).perform();
            browser.sleep(50);
            return elem.getText().then(function (text) {
                return text.trim() === rowText.trim();
            });
        }).each(function (element) {
            browser.actions().mouseMove(element).perform();
            element.click();
            browser.sleep(10*1000);
        });
    });
每当我尝试使用
的“result”对象,然后在
中的第一个函数上应用
函数时,单击RowElement使用RowTextandColumnName
,它的值都是未定义的。请帮帮我


我必须传递此结果值以形成特定列索引的xpath并对其执行操作。

您应该正确返回第一个函数中的值。 例如,您可以尝试以下代码:

getColumnNumber(columnName) {
        ...
        return colEle.getText().then(function (text) {
            return text.indexOf(columnName) + 1;
        });
}
如果看到,它将返回
actIndex

还要注意的是,没有正确链接的代码很少,所有的量角器方法都会返回需要链接的承诺,以确保流保持同步

然后,正如建议的那样,尽量避免使用
xpath
定位器。
它们不可读,导致性能下降

您应该返回值
return(text.indexOf(columnName)+1)
from
colEle.getText()
promise。