我正在使用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);
})
});
}
答案 0 :(得分:0)
我相信您应该明确设置自身属性的类型,以帮助编辑者了解自我元素的可用功能。
像这样:
让我们自己:ElementFinder = this;
我在我的编辑器中对它进行了测试,但它确实有效。