首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Scala中迭代/预测FluentLenium列表

在Scala中迭代/预测FluentLenium列表
EN

Stack Overflow用户
提问于 2015-04-07 20:50:50
回答 1查看 263关注 0票数 1

我是Scala新手,在编写selenium测试时遇到了问题。我正在检索一个webelements列表(为了我们的目的,让我们假设它们不能单独检索)。列表将以FluentList的形式返回。

我可以对fluent列表进行操作,用它自己的一些函数(如first() )检索元素,但是当我试图遍历该列表时,会得到以下错误:

代码语言:javascript
复制
 value foreach is not a member of org.fluentlenium.core.domain.FluentList[org.fluentlenium.core.domain.FluentWebElement]

从我迄今为止的阅读来看,我认为我需要以某种方式将这个列表转换为Scala列表,但是到目前为止还没有成功。

我在正确的轨道上吗?还是我应该以不同的方式来处理这个问题?

相关守则:

代码语言:javascript
复制
val icons = browser.$(Selectors.social_icons)

icons.foreach {
  icon.isDisplayed
}
option_text must be equalTo browser.$(Selectors.answered_question)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-07 20:54:28

在使用Java列表时,必须将它们转换为Scala列表,以使用所期望的方法。你有两个选择:

使用scala.collection.JavaConverters显式转换列表

代码语言:javascript
复制
import scala.collection.JavaConverters._
icons.asScala.foreach ...

scala.collection.JavaConversions隐式转换列表

代码语言:javascript
复制
import scala.collection.JavaConversion._
icons.foreach ...

虽然隐式版本显然更简洁,但有些人更喜欢显式版本,因为它清楚地标记了从Java到Scala的转换,并且在调试神秘的隐式转换时可能会有所帮助。

您可以始终检查Java文档,以确定预期的类型。例如,FluentList文档显示:

代码语言:javascript
复制
FluentList<E extends FluentWebElement> extends List<E> ...

因此,我们可以期望Scala将其转换为scala.List[FluentWebElement

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29501065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档