在列表框中选择多个值
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"); 列出以上是关于在列表框中选择多个值的主要内容,如果未能解决你的问题,请参考以下文章