Javascript getText函数在array.map()中抛出过时的元素

Javascript getText函数在array.map()中抛出过时的元素,javascript,protractor,Javascript,Protractor,我正在尝试使用array.map函数查找存储在数组中的所有WebElement的文本属性。是否有办法处理此问题并重试查找文本属性 带有正常for循环以供重试的标准解决方案是一个选项。希望检查其他解决方案 let name_planogram_table = await element.all(by.xpath(planograms_Table_cart_Category)); let uistringvaluearray = await Promise.all(name_planogram

我正在尝试使用array.map函数查找存储在数组中的所有WebElement的文本属性。是否有办法处理此问题并重试查找文本属性

带有正常for循环以供重试的标准解决方案是一个选项。希望检查其他解决方案

 let name_planogram_table = await element.all(by.xpath(planograms_Table_cart_Category));

 let uistringvaluearray = await Promise.all(name_planogram_table .map(name=> name.getText()));
量角器的每一个都应该起作用

let uistringvaluearray = await name_planogram_table.each(async arrayElement => {
   return arrayElement.getText()
   //This is just a quick example
   //return the value, assign to another variable or do whatever you need to do
})
量角器的每一个都应该起作用

let uistringvaluearray = await name_planogram_table.each(async arrayElement => {
   return arrayElement.getText()
   //This is just a quick example
   //return the value, assign to another variable or do whatever you need to do
})

只需在元素finderArray上调用getText,就可以获得这些值,如下所示

let name_planogram_table = await element.all(by.xpath(planograms_Table_cart_Category)).getText();
console.log(name_planogram_table);

它将生成一个字符串数组。

您只需在元素finderArray上调用getText,就可以获得这些值,如下所示

let name_planogram_table = await element.all(by.xpath(planograms_Table_cart_Category)).getText();
console.log(name_planogram_table);
它将生成一个字符串数组

等待关键字解析承诺。element.allby.xpathplanograms\u Table\u cart\u类别不是承诺,我们无需等待

如上所述,这将起作用

但是!!!一年前有一个bug,当你对很多元素调用.getText或.getAttribute 30、50、100+时,它可能仍然存在,你会得到陈旧的元素错误。在这种情况下,唯一的解决方案是for循环

等待关键字解析承诺。element.allby.xpathplanograms\u Table\u cart\u类别不是承诺,我们无需等待

如上所述,这将起作用


但是!!!一年前有一个bug,当你对很多元素调用.getText或.getAttribute 30、50、100+时,它可能仍然存在,你会得到陈旧的元素错误。在这种情况下,唯一的解决方案是for循环

,它不会抛出过时的元素引用吗@Yuriy GerasimovichEven you每个人都是异步的,不应该引起任何问题。正如Sergey Pleshakov不久前提到的那样,有一个bug,但就我个人而言,它现在可以处理10+个元素的列表。在我的例子中,我有一个类似元素的列表,我的测试需要验证是否有一个元素具有所需的文本。它将抛出相同的错误,除非在量角器中修复了这个问题,否则这个元素引用不会抛出过时的元素吗@Yuriy GerasimovichEven you每个人都是异步的,不应该引起任何问题。正如Sergey Pleshakov不久前提到的那样,有一个bug,但就我个人而言,它现在与10+个元素的列表一起工作。在我的例子中,我有一个类似元素的列表,我的测试需要验证是否有一个元素具有所需的文本。它将抛出相同的错误,除非在量角器中修复