在列表框中选择多个值

Posted

技术标签:

【中文标题】在列表框中选择多个值【英文标题】: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部分找到上述代码 在上述情况下提供任何更新。我还在这部分苦苦挣扎。请指导并提供替代解决方案 你看过这个***.com/questions/21421790/…了吗? 【参考方案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

以上是关于在列表框中选择多个值的主要内容,如果未能解决你的问题,请参考以下文章

根据选择一个列表框中的项目选择/取消选择多个列表框中的项目 - C# Windows 窗体

选择/取消选择多个列表框中的多个项目

在数据框中查找多个列表值

如何在列表框中显示多个字典项

选择列表框项目时,在另一个列表框中显示相关数据

确定是不是在 MS Access 2007 列表框中选择了行