打字稿/量角器。遍历ElementFinderArray并兑现承诺

时间:2019-06-19 12:01:16

标签: typescript promise protractor

我想在量角器中执行以下操作(但使用打字稿):

let cellsTxt = await Promise.all(cells.map(cell => cell.getText()));

在这里,我想通过ElementArrayFinder获取每个元素的文本。

到目前为止,我想出了以下内容,它们很冗长,无法正常工作:

let cellsTxt: Array<string> = [];
let cellsTxtPromise: Array<promise.Promise<string>> = [];
cells.forEach((cell: ElementFinder, i:number) => {
  cellsTxtPromise[i] = cell.getText();
})
cellsTxt = await Promise.all(cellsTxt);

我欢迎任何指向正确解决方案的指针。

谢谢!

编辑:这不是一个相关的问题;既然我遇到的问题是由另一段代码引起的。

1 个答案:

答案 0 :(得分:1)

我认为有几种方法可以实现相同的目标:

1) let cellsTxt = await cells.getText(); // you can call getText() on ElementArrayFinder

2) let cellsTxt = await cells.map(cell => await cell.getText()));

3) let cellsTxt = await Promise.all(cells.map(cell => cell.getText()));

4) let tmp = []; 
   let cellsTxt = await cells.each(cell => tmp.push( await cell.getText() ))
                             .then(()=> return tmp;)