在列表框中选择多个值

Kri*_*hna 5 html java selenium

如何在列表框中选择多个值。我尝试使用下面的代码,它只选择一次值。请提出建议,并提供另一种选择当前多个值的方法

WebElement Groupid_selection =driver.findElement(By.id("id"));
Select Group = new Select (Groupid_selection);
Group.selectByVisibleText("aa");
Group.selectByVisibleText("bb");
Group.selectByVisibleText("cc"); 
Run Code Online (Sandbox Code Playgroud)

以下是HTML:

<div id="Dimension" style="position:absolute;top:5px;left:585px;width:120px;height:40px;">
  <select class="bf" style="width: 100%;height:48px;" name="Dimension" id="Dimension1"
            onchange="CheckDimentionChangeAndUpdate(this);" size="3" multiple="multiple">
    <option value="1" selected="selected" title=aa>aa</option>
    <option value="9" title="bb">bb</option>
    <option value="4" title="cc">cc</option>
    <option value="7" title="dd">dd</option>
  </select>
</div>
Run Code Online (Sandbox Code Playgroud)

swi*_*ler 0

关于给定的 HTML(重新格式化),选择元素的 id是Dimension1

<div id="Dimension" style="position:absolute;top:5px;left:585px;width:120px;height:40px;">
  <select class="bf" style="width: 100%;height:48px;" name="Dimension" id="Dimension1" onchange="CheckDimentionChangeAndUpdate(this);" size="3" multiple="multiple">
    <option value="1" selected="selected" title=aa>aa</option>
    <option value="9" title="bb">bb</option>
    <option value="4" title="cc">cc</option>
    <option value="7" title="dd">dd</option>
  </select>
</div> 
Run Code Online (Sandbox Code Playgroud)

我创建了一个test.html并使用了以下代码(Selenium 和 Firefox 驱动程序版本 2.45.0):

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;

public class Selenium2Example {
  public static void main(String[] args) {
    WebDriver driver = new FirefoxDriver();

    driver.get("http://localhost:8080/test.html");
    WebElement Groupid_selection = driver.findElement(By.id("Dimension1"));
    Select Group = new Select(Groupid_selection);
    Group.selectByVisibleText("aa");
    Group.selectByVisibleText("bb");
    Group.selectByVisibleText("cc");

    List<WebElement> options = Group.getAllSelectedOptions();
    options.forEach(e -> System.out.println("Selected element: " +
       e.getText() + "[value=" +
       e.getAttribute("value") +  ", title=" +
       e.getAttribute("title") +  "]"));

    driver.quit();
  }
}
Run Code Online (Sandbox Code Playgroud)

并且所有三个元素(aa,bb,cc)都将被选择。输出:

Selected element: aa[value=1, title=aa]
Selected element: bb[value=9, title=bb]
Selected element: cc[value=4, title=cc]
Run Code Online (Sandbox Code Playgroud)