是否可以按代码打开Vaadin
ComboBox
?
我想介绍两个相互依赖的组合框。当用户在第一个中选择一个值时,我希望第二个组合框自动打开可能的选择,这样用户就可以直接选择一个,而不必自己打开第二个组合框。
也许我可以发送一个事件来触发开场?
答案 0 :(得分:2)
我唯一能想到的是,在将焦点放在组合框之后,尝试向其发送击键(即向下箭头以尝试打开它)。有一个很好的例子here
另一种方式,也许尝试使用Selenium来触发组合框,但这可能是过度杀伤力。例如,请查看vaadin的测试平台。
答案 1 :(得分:2)
我已经在Vaadin 7中使用Selenium WebDriver完成了这项工作:
public void selectValueInCombobox(WebElement cmb, String value) {
cmb.findElement(By.tagName("div")).click(); //shows the menu
List<WebElement> findElements = webDriver.findElements(By.cssSelector("td[role='listitem']"));
findElements.stream()
.filter(item-> value.equals(item.findElement(By.tagName("span")).getText()))
.findFirst().get().click();
}
WebElement是Combobox(在html中呈现时为div),value是您想要选择的组合框中的listitem。