获取错误尝试返回到下一个然后在Promise链

时间:2017-08-10 06:24:33

标签: typescript promise protractor webstorm

我正在使用TypeScript自动化E2E测试。如果我做的事情如 self.all(by.xpath(".//thead/tr/th|.//thead/tr/td")).then...效果很好。

但是,如果我将它放在Promise链中,我的IDE会突出显示文本.all,并说“ElementArrayFinder不可分配”。

  

TS2345:类型'()=>的参数ElementArrayFinder'不可分配   参数类型'(值:{})=>任何[] | ElementFinder [] |   IThenable”。输入'ElementArrayFinder'即可   不能分配给'any [] | ElementFinder [] | IThenable”。       类型'ElementArrayFinder'不能分配给'IThenable'类型。         “ElementArrayFinder”类型中缺少“取消”属性。

getAllHeader() {
    let self = this;
    return new Promise(function (resolve, reject) {
        let textArr = [];
        browser.executeScript('arguments[0].scrollIntoView()', self.getWebElement())
            .then(function () {
                return self.all(by.xpath(".//thead/tr/th|.//thead/tr/td"))
            })
            .then(function (eleArr) {
      .................
            })
            .catch(function (reason) {
                reject(reason);
            })
    });

}

1 个答案:

答案 0 :(得分:0)

我相信您应该明确设置自身属性的类型,以帮助编辑者了解自我元素的可用功能。

像这样:

让我们自己:ElementFinder = this;

我在我的编辑器中对它进行了测试,但它确实有效。