所以我有Drop Down List
,当用户输入一些文字时会弹出一个建议选项,当获得此选项时,我会List
WebElement
:
<div class="class1">
<span class="class2" style="display: block;">
<div class="class3">
<div style="white-space: normal;">
<p>
<span class="class4"></span>
<strong>val1</strong>
<a class="edit" href="bla bla">Edit</a>
</p>
<p>val2</p>
<p>val3</p>
<p>
</p>
</div>
</div>
获取列表:
def getSuggerstionList(): Unit = {
val suggestion: List[WebElement] = ...
parse(suggestion(0))
}
所以在得到所有这个列表后我想解析第一个元素并得到val1,val2,val3:
def parse(webElement: WebElement): Unit = {
val element = webElement.findElements(By.cssSelector("p"))
element.foreach(x => println(x.getText))
}
所以这里我有一个非常奇怪的行为:在打印这个元素(列表中的第一个元素)之后,这会打印我列表中的所有元素,而不仅仅是第一个元素,我做错了吗?
答案 0 :(得分:0)
在val element = webElement.findElements(By.cssSelector("p"))
中,您将列表分配给element
。
在element.foreach(x => println(x.getText))
中,您遍历该列表并在其中打印每个WebElement的文本。
仅打印第一个使用索引
println(element(0))
或者首先只找到一个元素
val element = webElement.findElement(By.cssSelector("p")) //note the speling of findElement - without 's'
println(element)