【发布时间】:2019-09-12 05:42:53
【问题描述】:
请看下面的代码。 getAllGroupIds() 函数返回“组”元素的 id 数组。基本上,我在测试操作之前获得所有组 ID,在测试操作之后获得所有组 ID,然后我想比较它们。
但是下面的代码没有编译,因为“groupIdsAfter.filter”:
类型“字符串”.ts(2339) 上不存在属性“过滤器”
基本上 TS 认为 getAllGroupIds 函数返回一个 Promise(string)。它没有注意到我有“element.all”。与“element.all”一起使用时,“getAttribute”返回和字符串数组而不是字符串。
我尝试将函数的输出设置为 Promise(string[]) 但随后出现不同的编译错误:
“Promise”类型缺少“Promise”类型的以下属性:[Symbol.toStringTag], finallyts(2739)
testCreateEmptyActivity2 = () =>
{
this.page.navigateTo().then(() =>
{
this.getAllGroupIds().then((groupIdsBefore) =>
{
console.log(groupIdsBefore);
// do something: test action
this.getAllGroupIds().then((groupIdsAfter) =>
{
console.log(groupIdsAfter);
let diff = groupIdsAfter.filter(e => !groupIdsBefore.includes(e));
console.log(diff);
});
});
browser.sleep(2000);
});
}
private getAllGroupIds = () =>
{
return element.all(by.css("rect.group")).getAttribute("id");
}
【问题讨论】:
标签: typescript protractor