java - 无法使用 Selenium webdriver 选择多个下拉列表(不是类选择)
问题描述
我在使用 Selenium webdriver 进行测试时遇到问题。我正在使用 Java。无法从不是类 Select 的多个下拉列表中进行选择。这是下拉列表的样子:
这就是代码:
<div class="form-group ">
<label for="CurrentCategoriesNomIds-selectized">Categories</label>
<select placeholder="" multiple="multiple" id="CurrentCategoriesNomIds" name="CurrentCategoriesNomIds" tabindex="-1" class="selectized" style="display: none;">
<option value="325" selected="selected">Education</option>
</select>
<div class="selectize-control multi plugin-remove_button">
<div class="selectize-input items not-full has-options has-items">
<div class="item" data-value="325">
Education
<a href="javascript:void(0)" class="remove" tabindex="-1" title="Remove">×</a>
</div>
<input type="text" autocomplete="off" tabindex="" id="CurrentCategoriesNomIds-selectized" style="width: 4px; opacity: 1; position: relative; left: 0px;"></div>
<div class="selectize-dropdown multi plugin-remove_button" style="display: none; visibility: visible; width: 800px; top: 36px; left: 0px;">
<div class="selectize-dropdown-content">
<div class="option" data-selectable="" data-value="324">Agriculture</div>
<div class="option" data-selectable="" data-value="298">Culture</div>
<div class="option" data-selectable="" data-value="326">Employment</div>
<div class="option" data-selectable="" data-value="323">Environment</div>
<div class="option" data-selectable="" data-value="327">Other</div>
<div class="option" data-selectable="" data-value="297">Political</div>
<div class="option" data-selectable="" data-value="322">Transport</div>
</div>
</div>
</div>
</div>
这是选择 2 个选项时的样子。我想知道是否可以尝试使用 KEYS,但页面不能那样工作。以前没见过那种领域,不知道如何进行?
解决方案
您可以使用此代码单击下拉菜单:
public static void selectOption(WebDriver driver, String optionName) {
List<WebElement> options = driver.findElements(By.xpath("//div[@class='selectize-dropdoun-content']//div[@class='option']"));
options.forEach(option -> {
if (option.getAttribute("innerText").equals(optionName)) {
Actions actions = new Actions(driver);
actions.moveToElement(option).click().build().perform();
}
});
}
然后像这样使用:
String option = "Education";
selectOption(driver,option);
希望对你有帮助:)
为我在网站上尝试过的内容添加屏幕截图:https ://semantic-ui.com/modules/dropdown.html
推荐阅读
- java - 在 JTable 上使用 RowSorter.SortKey 时下移空行
- android - 如何在 LinearLoyout ImageView 中设置点击监听器
- microservices - 使用 Spring Boot 的微服务中的 Active Standby
- java - 正则表达式模式:未闭合组
- c++ - 如何检查一个单词是否存在于向量中
- java - Spring - 对“..”的请求返回 Tomcat 错误页面而不是 Whitelabel
- python - 为什么 pandas reindex() 不在原地运行?
- angular - 剑道多选不显示以前选择的项目
- amazon-web-services - 并行运行 AWS Glue 作业
- laravel - Join pivot 有一个数组