使用selectByVisibleText
忽略区分大小写,我无法从下拉菜单中进行选择。选项'案例是动态的。
我使用的示例代码:
public static void setDropdownValue(By fieldId, String fieldValue) {
Select dropDown = new Select(driver.findElement(fieldId));
dropDown.selectByVisibleText(fieldValue);
}
有没有办法可以从忽略案例的菜单中选择选项。
由于
答案 0 :(得分:2)
使用selectByVisibleText(text)
是不可能的,但如果您仍想以某种方式执行此操作。使用这样的东西:
public static void setDropdownValue(By fieldId, String fieldValue) {
Select dropDown = new Select(driver.findElement(fieldId));
int index = 0;
for (WebElement option : dropDown.getOptions()) {
if (option.getText().equalsIgnoreCase(fieldValue))
break;
index++;
}
dropDown.selectByIndex(index);
}
要添加的最后一点,根据您的网页结构,有时option.getText()
可能不会返回您需要的选项值。
在这种情况下,请在下拉列表中找到包含选项值的属性,然后使用option.getAttribute("the attribute name containing value")
。通常,对于选择属性是'值',对于它,您必须使用option.getAttribute("value")
我希望它有所帮助:)
答案 1 :(得分:0)
否,而不是selectByVisibleText(text)
,后者变为:
findElements(By.xpath(".//option[normalize-space(.) = " + Quotes.escape(text) + "]"));