Example usage for org.openqa.selenium WebElement sendKeys

List of usage examples for org.openqa.selenium WebElement sendKeys

Introduction

In this page you can find the example usage for org.openqa.selenium WebElement sendKeys.

Prototype

void sendKeys(CharSequence... keysToSend);

Source Link

Document

Use this method to simulate typing into an element, which may set its value.

Usage

From source file:com.gargoylesoftware.htmlunit.selenium.TypingTest.java

License:Apache License

/**
 * A test.//from  w w  w.  j  av  a  2s.c o  m
 */
@Test
public void specialSpaceKeys() {
    final WebDriver driver = getWebDriver("/javascriptPage.html");

    final WebElement element = driver.findElement(By.id("keyReporter"));

    element.sendKeys("abcd" + Keys.SPACE + "fgh" + Keys.SPACE + "ij");
    assertThat(element.getAttribute("value"), is("abcd fgh ij"));
}

From source file:com.gargoylesoftware.htmlunit.selenium.TypingTest.java

License:Apache License

/**
 * A test.//w  w w . jav  a2  s .c om
 */
@Test
public void numberpadKeys() {
    final WebDriver driver = getWebDriver("/javascriptPage.html");

    final WebElement element = driver.findElement(By.id("keyReporter"));

    element.sendKeys("abcd" + Keys.MULTIPLY + Keys.SUBTRACT + Keys.ADD + Keys.DECIMAL + Keys.SEPARATOR
            + Keys.NUMPAD0 + Keys.NUMPAD9 + Keys.ADD + Keys.SEMICOLON + Keys.EQUALS + Keys.DIVIDE + Keys.NUMPAD3
            + "abcd");
    assertThat(element.getAttribute("value"), is("abcd*-+.,09+;=/3abcd"));
}

From source file:com.gargoylesoftware.htmlunit.selenium.TypingTest.java

License:Apache License

/**
 * A test./*from w  ww  . j av  a  2  s.com*/
 */
@Test
public void shiftSelectionDeletes() {
    final WebDriver driver = getWebDriver("/javascriptPage.html");

    final WebElement element = driver.findElement(By.id("keyReporter"));

    element.sendKeys("abcd efgh");
    assertThat(element.getAttribute("value"), is("abcd efgh"));

    element.sendKeys(Keys.SHIFT, Keys.LEFT, Keys.LEFT, Keys.LEFT);
    element.sendKeys(Keys.DELETE);
    assertThat(element.getAttribute("value"), is("abcd e"));
}

From source file:com.gargoylesoftware.htmlunit.selenium.TypingTest.java

License:Apache License

/**
 * A test./*from   ww w .  ja  v a  2 s . c o  m*/
 */
@Test
public void chordControlHomeShiftEndDelete() {
    final WebDriver driver = getWebDriver("/javascriptPage.html");

    final WebElement result = driver.findElement(By.id("result"));
    final WebElement element = driver.findElement(By.id("keyReporter"));

    element.sendKeys("!\"#$%&'()*+,-./0123456789:;<=>?@ ABCDEFG");

    element.sendKeys(Keys.HOME);
    element.sendKeys("" + Keys.SHIFT + Keys.END);
    assertThat(result.getText(), containsString(" up: 16"));

    element.sendKeys(Keys.DELETE);
    assertThat(element.getAttribute("value"), is(""));
}

From source file:com.gargoylesoftware.htmlunit.selenium.TypingTest.java

License:Apache License

/**
 * A test.// ww  w  . ja  va 2  s  .  c om
 */
@Test
public void chordReveseShiftHomeSelectionDeletes() {
    final WebDriver driver = getWebDriver("/javascriptPage.html");

    final WebElement result = driver.findElement(By.id("result"));
    final WebElement element = driver.findElement(By.id("keyReporter"));

    element.sendKeys("done" + Keys.HOME);
    assertThat(element.getAttribute("value"), is("done"));

    element.sendKeys("" + Keys.SHIFT + "ALL " + Keys.HOME);
    assertThat(element.getAttribute("value"), is("ALL done"));

    element.sendKeys(Keys.DELETE);
    assertThat(element.getAttribute("value"), is("done"));

    element.sendKeys("" + Keys.END + Keys.SHIFT + Keys.HOME);
    assertThat(element.getAttribute("value"), is("done"));
    // Note: trailing SHIFT up here
    assertThat(result.getText().trim(), containsString(" up: 16"));

    element.sendKeys("" + Keys.DELETE);
    assertThat(element.getAttribute("value"), is(""));
}

From source file:com.gargoylesoftware.htmlunit.selenium.TypingTest.java

License:Apache License

/**
 * A test.//  w  w w.j  a va2s  .  c o  m
 */
@Test
public void generateKeyPressEventEvenWhenElementPreventsDefault() {
    final WebDriver driver = getWebDriver("/javascriptPage.html");

    final WebElement silent = driver.findElement(By.name("suppress"));
    final WebElement result = driver.findElement(By.id("result"));

    silent.sendKeys("s");
    assertThat(result.getText().trim(), is(""));
}

From source file:com.gargoylesoftware.htmlunit.selenium.TypingTest.java

License:Apache License

/**
 * A test.// www .  j a v  a2s . c o m
 */
@Test
@Alerts(DEFAULT = { "keydown (target) keyup (target) keyup (body)",
        "keydown (target) keyup (target) keyup (body) keydown (target) a pressed; removing" }, CHROME = {
                "keydown (target) keyup (target) keyup (body)",
                "keydown (target) keyup (target) keyup (body) keydown (target) a pressed; removing keyup (body)" })
public void canSafelyTypeOnElementThatIsRemovedFromTheDomOnKeyPress() {
    final WebDriver driver = getWebDriver("/key_tests/remove_on_keypress.html");

    final WebElement input = driver.findElement(By.id("target"));
    final WebElement log = driver.findElement(By.id("log"));

    assertEquals("", log.getAttribute("value"));

    input.sendKeys("b");
    assertEquals(getExpectedAlerts()[0], getValueText(log).replace('\n', ' '));

    input.sendKeys("a");

    // Some drivers (IE, Firefox) do not always generate the final keyup event since the element
    // is removed from the DOM in response to the keypress (note, this is a product of how events
    // are generated and does not match actual user behavior).
    assertEquals(getExpectedAlerts()[1], getValueText(log).replace('\n', ' '));
}

From source file:com.gargoylesoftware.htmlunit.SimpleWebDriverTest.java

License:Apache License

/**
 * Test event order.//from ww  w.  j a  v  a2s.co  m
 * @throws Exception if the test fails
 */
@Test
//Fails with InternetExplorerDriver, but works in independent IE :(
public void eventOrder() throws Exception {
    final String html = "<html>\n" + "<head>\n" + "  <script>\n" + "    function log(text) {\n"
            + "      var textarea = document.getElementById('myTextarea');\n"
            + "      textarea.value += text + ',';\n" + "    }\n" + "  </script>\n" + "</head><body>\n"
            + "<form>\n"
            + "  <input name='foo' id='foo' onfocus=\"log('focus')\" onblur=\"log('blur')\" onchange=\"log('change')\""
            + " onkeydown=\"log('keydown')\" onkeypress=\"log('keypress')\" onkeyup=\"log('keyup')\">\n"
            + "  <input name='other' id='other'>\n" + "</form>\n"
            + "  <textarea id='myTextarea' cols='80'></textarea>\n" + "</body></html>";

    final WebDriver webDriver = loadPageWithAlerts2(html);
    final WebElement textField = webDriver.findElement(By.id("foo"));
    textField.click(); // to give focus
    textField.sendKeys("a");
    webDriver.findElement(By.id("other")).click();

    final String expected;
    if (getBrowserVersion().isFirefox() && getBrowserVersion().getBrowserVersionNumeric() == 2) {
        expected = "focus,keydown,keypress,keyup,blur,change,";
    } else {
        expected = "focus,keydown,keypress,keyup,change,blur,";
    }

    assertEquals(expected, webDriver.findElement(By.id("myTextarea")).getText());
}

From source file:com.giri.target.svr.cmd.GenericHTMLCommandProcessor.java

License:Open Source License

/**
 * @param webdriver//from www .  ja v a 2s .  c om
 * @param cmd2
 * @return 
 * @throws Exception 
 */
public String process(ISeleniumTestRunner testRunner, final WebDriver webdriver, final TARGetPageDriver driver,
        ICommand cmd) throws Exception {
    //TODO migrate to webdriver

    //http://seleniumhq.org/docs/04_selenese_commands.html
    //TODO fix if conditions
    final String result;
    if ("click".equals(cmd.getCommand())) {
        // TODO, duplicate code
        // for some reason  if I use  "TARGetPageDriver.findElement(s)" the client event is not really happening 
        // hence move the code directly here to test

        final WebElement element = (WebElement) TARGetPageDriver.findElement(driver, cmd.getLocator());

        //TODO workaround, some time client is not working, try selecting the parent element?
        /*         element.findElement(By.xpath("..")).click();
                         
                 element.click();*/
        element.sendKeys("\n");

        //         final WebElement element;
        //         String locator = cmd.getLocator();
        //         if((locator != null && (locator = locator.trim()).length() > 0)){
        //            final By finder;
        //            if(locator.startsWith("#")){
        //               element = webdriver.findElement(By.id(locator));
        //            }
        //            else if(locator.startsWith(".")){
        //               element = webdriver.findElement(By.className(locator));
        //            }
        //            else if(locator.startsWith("css=")){
        //               final String loc = locator.substring("css=".length(), locator.length());
        //               element = webdriver.findElement(By.cssSelector(loc));
        //            }
        //            else if(locator.startsWith("link=")){
        //               final String loc = locator.substring("link=".length(), locator.length());
        //               element = webdriver.findElement(By.linkText(loc));
        //            }
        //            else if(locator.startsWith("name=")){
        //               final String loc = locator.substring("name=".length(), locator.length());
        //               element = webdriver.findElement(By.name(loc));
        //            }else{
        //               if(locator.startsWith("jq=")){
        //                  final String loc = locator.substring("js=".length(), locator.length());
        //                  final String js = "return TSLFINDERS.toDOMElement($(\""+loc+"\"))";
        //                  final String jss = "$(\""+loc+"\")";
        //                  final Object rslt = ((JavascriptExecutor)webdriver).executeScript(jss);
        //                  final List<WebElement> elements = (List<WebElement>) ((JavascriptExecutor)webdriver).executeScript("$(\""+loc+"\")");
        //                  element = (elements != null && elements.size() > 0 ? elements.get(0) : null);
        //               }
        //               else if(locator.startsWith("js=")){
        //                  final String loc = locator.substring("js=".length(), locator.length());
        //                  final String js = "return "+loc;
        //                  final List<WebElement> elements = (List<WebElement>) ((JavascriptExecutor)webdriver).executeScript(js);
        //                  element = (elements != null && elements.size() > 0 ? elements.get(0) : null);
        //               }else{
        //                  throw new RuntimeException("Unknown locator pattern: '"+cmd.getLocator()+"'");
        //               }
        //            }
        //         }else{
        //            element = null;
        //         }
        //         //         final WebElement element = (WebElement) TARGetPageDriver.findElement(webdriver, cmd.getLocator());
        //         if(element != null){
        //            element.click();
        //         }

        result = "true";
        //         final WebElement element = TARGetPageDriver.findElement(webdriver, cmd.getLocator());
        //         if(element != null){
        //            element.click();
        //            result = "true";
        //         }else{
        //            throw new RuntimeException("Element not found, Locator :"+cmd.getLocator());
        //         }
    } else if ("type".equals(cmd.getCommand())) {
        final WebElement element = TARGetPageDriver.findElement(driver, cmd.getLocator());
        if (element != null) {
            element.sendKeys(cmd.getArgs());
            result = "true";
        } else {
            throw new RuntimeException("Element not found, Locator :" + cmd.getLocator());
        }
    } else {
        CommandProcessor commandProcessor = driver.getWebDriverBackedSelenium().getCommandProcessor();

        final String[] args;
        if (cmd.getArgs() != null) {
            args = new String[] { cmd.getLocator(), cmd.getArgs() };
        } else {
            args = new String[] { cmd.getLocator() };
        }

        result = commandProcessor.doCommand(cmd.getCommand(), args);
    }

    return result;
}

From source file:com.giri.target.svr.cmd.KeyCommandProcessor.java

License:Open Source License

@Override
public String process(ISeleniumTestRunner testRunner, final WebDriver webdriver, final TARGetPageDriver driver,
        final ICommand command) throws Exception {
    String keystr = command.getArgs();

    CharSequence keysToSend = getKey(keystr);

    String locator = command.getLocator();
    final WebElement element;
    if (locator != null && locator.length() > 0) {
        element = (WebElement) TARGetPageDriver.findElement(driver, locator);
    } else {/*  w w w.j a  v a  2  s. c o  m*/
        element = (WebElement) driver.executeScript("return window.document;");
    }

    if (element != null) {
        element.sendKeys(keysToSend);
    }

    return "true";
}