从Groovy中的List <webelement>获取文本

时间:2018-08-01 13:45:02

标签: java arraylist groovy

我正在处理实现Groovy Lambda函数的问题,该函数将文本从列表集合转换为列表集合。 原始的Java代码:

list.stream().map(WebElement::getText).collect(Collectors.toList());

我的Groovy版本失败:

list.stream().map({ WebElement } as String).collect(Collectors.toList())
  

groovy.lang.MissingMethodException:没有方法的签名:   java.util.stream.ReferencePipeline $ Head.map()适用于   参数类型:(java.lang.String)值:   [quality1.CommonMethods$_clickSubMenuLeftBar_closure2@4e49ce2b]   可能的解决方案:map(java.util.function.Function),   max(java.util.Comparator),min(java.util.Comparator),wait(),grep(),   any()–

有人可以帮助我如何使其正常工作吗?我正在尝试使用类似的方法,例如:http://mrhaki.blogspot.com/2015/04/groovy-goodness-use-closures-as-java.html,但没有成功。

1 个答案:

答案 0 :(得分:0)

Groovy 3.0 (当前版本:3.0.0-alpha-3)将借助新的鹦鹉解析器-http://groovy-lang.org/releasenotes/groovy-3.0.html

支持lambda表达式和方法引用

对于Groovy 2.5.x和更早的版本,您将不得不替换方法参考:

WebElement::getText

带结束符:

{ el -> el.getText() }

最后的工作示例应如下所示:

list.stream().map{ el -> el.getText() }.collect(Collectors.toList())