从给定列表解析一个WebElement时,将打印所有列表

时间:2016-03-14 04:45:02

标签: html scala selenium

所以我有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))
  }

所以这里我有一个非常奇怪的行为:在打印这个元素(列表中的第一个元素)之后,这会打印我列表中的所有元素,而不仅仅是第一个元素,我做错了吗?

1 个答案:

答案 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)