package com.vaadin.testbench.customelements;
import org.junit.Assert;
import org.openqa.selenium.WebElement;
import com.vaadin.testbench.By;
import com.vaadin.testbench.elementsbase.ServerClass;
@ServerClass("com.vaadin.ui.ComboBox")
public class ComboBoxElement
extends com.vaadin.testbench.elements.ComboBoxElement {
private static org.openqa.selenium.By bySuggestionPopup = By
.vaadin("#popup");
@Override
public WebElement getInputField() {
return findElement(By.vaadin("#textbox"));
}
@Override
public String getText() {
return getInputField().getAttribute("value");
}
@Override
public void clear() {
getInputField().clear();
}
@Override
public WebElement getSuggestionPopup() {
return findElement(bySuggestionPopup);
}
@Override
public void sendKeys(CharSequence... keysToSend) {
sendKeys(50, keysToSend);
}
/**
* Use this method to simulate typing into an element, which may set its
* value.
*
* @param delay
* delay after sending each individual key (mainly needed for
* PhantomJS)
* @param keysToSend
* keys to type into the element
*/
public void sendKeys(int delay, CharSequence... keysToSend) {
WebElement input = getInputField();
for (CharSequence key : keysToSend) {
input.sendKeys(key);
try {
Thread.sleep(delay);
} catch (InterruptedException e) {
Assert.fail(e.getMessage());
}
}
}
}