【问题标题】:Selecting multiple values in Listbox在列表框中选择多个值
【发布时间】:2015-07-21 17:20:12
【问题描述】:

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

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>

【问题讨论】:

  • 你能添加一些相关的HTML吗?
  • 请在html部分找到上述代码
  • 在上述情况下提供任何更新。我还在这部分苦苦挣扎。请指导并提供替代解决方案

标签: java html selenium


【解决方案1】:

关于您给定的 HTML(重新格式化),select 元素的 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]

【讨论】:

  • 根本没有选择所有的值。它只选择单个值。
  • 您的环境是什么,您的驱动程序等 - 如所写,使用上述版本和 FirefoxDriver 选择工作正常。您能否提供由于您帖子中的 sn-p 不适用于您提供的 HTML 而无法正常工作的具体代码。
  • 我一直在使用 chromedriver_win32(2) 驱动程序和 Eclipse Standard/SDK - 版本:Luna Service Release 1 (4.4.1)。
  • WebElement Dimension_selection = driver.findElement(By.id("Dimension1"));选择 SelectDimension = 新选择 (Dimension_selection); SelectDimension.deselectAll(); SelectDimension.selectByVisibleText("aa"); SelectDimension.selectByVisibleText("bb");
  • 列出 选择 = SelectDimension.getAllSelectedOptions(); int noofitemsselected = Selections.size(); System.out.println("noofitemsselected" + noofitemsselected); for (int i=0; i
猜你喜欢
  • 1970-01-01
  • 2014-09-26
  • 1970-01-01
  • 1970-01-01
  • 2017-01-04
  • 1970-01-01
  • 2021-11-26
  • 1970-01-01
  • 2021-12-14
相关资源
最近更新 更多