如何在selenium webdriver的多选框中选择元素

新手上路,请多包涵

目前正在使用 Selenium WebDriver 并使用 Java .. 我想知道在 选框中选择值。选项已被选中。如果我想选择任何两个或更多选项。如何执行操作。

HTML 如下:

 <select id="swpacksId" multiple="" style="width: 125px; display: none;" name="swPacks[]">
<option selected="" value="ADVIP">ADVIP</option>
<option selected="" value="ADVLEG">ADVLEG</option>
<option selected="" value="ADVSEC">ADVSEC</option>
<option selected="" value="Boot">Boot</option>
<option selected="" value="H323">H323</option>
<option selected="" value="IBC">IBC</option>
<option selected="" value="MULTI">MULTI</option>
<option selected="" value="None">None</option>
</select>

在此处输入图像描述

原文由 testing 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 479
2 个回答

在函数中传递值列表使用任何定界符让逗号作为定界符:

 public static void selectMultipelValues(String multipleVals) {
   String multipleSel[] = multipleVals.split(",");

   for (String valueToBeSelected : multipleSel) {
      new Select(driver.findElement(By.id(propId))).selectByVisibleText(valueToBeSelected);
      driver.findElement(By.id(ddObj)).sendKeys(Keys.CONTROL);
   }
}

原文由 Ships 发布,翻译遵循 CC BY-SA 3.0 许可协议

这对我有用:

 final String[] textOptions = {"value1", "value2"};
final WebElement element = driver.findElement(By.id("someId"));
final Select dropdown = new Select(element);
final List<WebElement> options = dropdown.getOptions();
final Actions builder = new Actions(driver);
final boolean isMultiple = dropdown.isMultiple();
if (isMultiple) {
    dropdown.deselectAll();
}
builder.keyDown(Keys.CONTROL);
for (String textOption : textOptions) {
    for (WebElement option : options) {
        final String optionText = option.getText().trim();
        if (optionText.equalsIgnoreCase(textOption)) {
            if (isMultiple) {
                if (!option.isSelected()) {
                    builder.click(option);
                }
            } else {
                option.click();
            }
            break;
        }
    }
}
builder.keyUp(Keys.CONTROL).build().perform();

原文由 S. Yanusheuski 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题