我是Scala新手,在编写selenium测试时遇到了问题。我正在检索一个webelements列表(为了我们的目的,让我们假设它们不能单独检索)。列表将以FluentList的形式返回。
我可以对fluent列表进行操作,用它自己的一些函数(如first() )检索元素,但是当我试图遍历该列表时,会得到以下错误:
value foreach is not a member of org.fluentlenium.core.domain.FluentList[org.fluentlenium.core.domain.FluentWebElement]从我迄今为止的阅读来看,我认为我需要以某种方式将这个列表转换为Scala列表,但是到目前为止还没有成功。
我在正确的轨道上吗?还是我应该以不同的方式来处理这个问题?
相关守则:
val icons = browser.$(Selectors.social_icons)
icons.foreach {
icon.isDisplayed
}
option_text must be equalTo browser.$(Selectors.answered_question)发布于 2015-04-07 20:54:28
在使用Java列表时,必须将它们转换为Scala列表,以使用所期望的方法。你有两个选择:
使用scala.collection.JavaConverters显式转换列表
import scala.collection.JavaConverters._
icons.asScala.foreach ...用scala.collection.JavaConversions隐式转换列表
import scala.collection.JavaConversion._
icons.foreach ...虽然隐式版本显然更简洁,但有些人更喜欢显式版本,因为它清楚地标记了从Java到Scala的转换,并且在调试神秘的隐式转换时可能会有所帮助。
您可以始终检查Java文档,以确定预期的类型。例如,FluentList文档显示:
FluentList<E extends FluentWebElement> extends List<E> ...因此,我们可以期望Scala将其转换为scala.List[FluentWebElement。
https://stackoverflow.com/questions/29501065
复制相似问题