在列表框中选择多个值

时间:2015-05-11 09:12:11

标签: java html selenium

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

WebElement Groupid_selection =driver.findElement(By.id("id"));
Select Group = new Select (Groupid_selection);
Group.selectByVisibleText("aa");
Group.selectByVisibleText("bb");
Group.selectByVisibleText("cc"); 

以下是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>

1 个答案:

答案 0 :(得分: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> 

我创建了 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();
  }
}

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

Selected element: aa[value=1, title=aa]
Selected element: bb[value=9, title=bb]
Selected element: cc[value=4, title=cc]
相关问题