我有一个类,我想创建一个异步方法,它将返回ElementArrayFinder。我需要这种类型,而不是ElementFinder [],因为我的服务员基于它,我可以等待DOM中现在不存在的元素。您可以在下面找到结构的简单示例。在''返回this.collection;'我有一个错误:
[TS] 类型'any []'不能分配给'ElementArrayFinder'类型。 “any []”类型中缺少属性“browser_”。
我尝试以不同的方式投射结果并尝试使用Promise.resolve,但没有成功。有人可以帮我解决这个案子吗?
export class Test {
private grid1: ElementFinder;
private grid2: ElementFinder;
get collection1(): ElementArrayFinder {
return this.grid1
.element(by.css('tbody'))
.all(by.tagName('tr'));
}
get collection2(): ElementArrayFinder {
return this.grid2
.element(by.css('tbody'))
.all(by.tagName('tr'));
}
public async getCollection(): Promise<ElementArrayFinder> {
if (await this.collection.count() === 0) {
return this.collection1;
}
return this.collection2;
}
}
v8.2.1
5.2.0
答案 0 :(得分:0)
我在文件element.d.ts文件中找到了答案。
ChromeOptions options = new ChromeOptions().setBinary("/Applications/Brave.app/Contents/MacOS/brave");
WebDriver driver = new ChromeDriver(options);
基于此文档,ElementArrayFinder类型由.then解析为ElementFinder []。这就是为什么我无法创建在promise中返回ElementArrayFinder类型的方法,但是可以创建只返回ElementArrayFinder类型的方法。