是否可以通過編碼方式打開Vaadin
ComboBox
?如何通過代碼打開Vaadin組合框?
我想介紹兩個相互依賴的組合框。當用戶在第一個選擇一個值時,我希望第二個組合框自動打開可能的選擇,以便用戶可以直接選擇一個,而不必自己打開第二個組合框。
也許有一個事件,我可以發送觸發開幕?
是否可以通過編碼方式打開Vaadin
ComboBox
?如何通過代碼打開Vaadin組合框?
我想介紹兩個相互依賴的組合框。當用戶在第一個選擇一個值時,我希望第二個組合框自動打開可能的選擇,以便用戶可以直接選擇一個,而不必自己打開第二個組合框。
也許有一個事件,我可以發送觸發開幕?
我能想到的唯一的事情是,在將焦點放在組合框之後,嘗試發送一個按鍵(即向下箭頭嘗試使其打開)。有一個很好的例子here
另一種方式,也許嘗試和使用Selenium來觸發組合框,但這可能矯枉過正。有關這方面的例子,請查看vaadin的測試平臺。
我與硒的webdriver做到了這Vaadin 7:
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格式呈現的股利),和價值是你想選擇的組合框的列表項。
是'.focus()'夠了嗎? – cfrick 2014-08-29 13:27:56
不,focus()只是將光標放置在組合框中,而沒有任何操作。 – membersound 2014-08-29 13:44:37