Typing the Enter/Return key in Selenium

SeleniumAutomationAutomated TestsKeypressEnter

Selenium Problem Overview


I'm looking for a quick way to type the Enter or Return key in Selenium.

Unfortunately, the form I'm trying to test (not my own code, so I can't modify) doesn't have a Submit button. When working with it manually, I just type Enter or Return. How can I do that with the Selenium type command as there is no button to click?

Selenium Solutions


Solution 1 - Selenium

import org.openqa.selenium.Keys

WebElement.sendKeys(Keys.RETURN);

The import statement is for Java. For other languages, it is maybe different. For example, in Python it is from selenium.webdriver.common.keys import Keys

Solution 2 - Selenium

Java

driver.findElement(By.id("Value")).sendKeys(Keys.RETURN);

OR,

driver.findElement(By.id("Value")).sendKeys(Keys.ENTER);

Python

from selenium.webdriver.common.keys import Keys
driver.find_element_by_name("Value").send_keys(Keys.RETURN)

OR,

driver.find_element_by_name("Value").send_keys(Keys.ENTER)

OR,

element = driver.find_element_by_id("Value")
element.send_keys("keysToSend")
element.submit()

Ruby

element = @driver.find_element(:name, "value")
element.send_keys "keysToSend"
element.submit

OR,

element = @driver.find_element(:name, "value")
element.send_keys "keysToSend"
element.send_keys:return

OR,

@driver.action.send_keys(:enter).perform
@driver.action.send_keys(:return).perform

C#

driver.FindElement(By.Id("Value")).SendKeys(Keys.Return);

OR,

driver.FindElement(By.Id("Value")).SendKeys(Keys.Enter);

Solution 3 - Selenium

You can use either of Keys.ENTER or Keys.RETURN. Here are the details:

Usage:

  • Java:

    • Using Keys.ENTER:

      import org.openqa.selenium.Keys;
      driver.findElement(By.id("element_id")).sendKeys(Keys.ENTER);
      
    • Using Keys.RETURN:

      import org.openqa.selenium.Keys;
      driver.findElement(By.id("element_id")).sendKeys(Keys.RETURN);
      
  • Python:

    • Using Keys.ENTER:

      from selenium.webdriver.common.keys import Keys
      driver.find_element_by_id("element_id").send_keys(Keys.ENTER)
      
    • Using Keys.RETURN:

      from selenium.webdriver.common.keys import Keys
      driver.find_element_by_id("element_id").send_keys(Keys.RETURN)
      

Keys.ENTER and Keys.RETURN both are from org.openqa.selenium.Keys, which extends java.lang.Enum<Keys> and implements java.lang.CharSequence.


Enum Keys

Enum Keys is the representations of pressable keys that aren't text. These are stored in the Unicode PUA (Private Use Area) code points, 0xE000-0xF8FF.

Key Codes:

The special keys codes for them are as follows:

  • RETURN = u'\ue006'
  • ENTER = u'\ue007'

The implementation of all the Enum Keys are handled the same way.

Hence these is No Functional or Operational difference while working with either sendKeys(Keys.ENTER); or WebElement.sendKeys(Keys.RETURN); through Selenium.


Enter Key and Return Key

On computer keyboards, the Enter (or the Return on Mac OS X) in most cases causes a command line, window form, or dialog box to operate its default function. This is typically to finish an "entry" and begin the desired process and is usually an alternative to pressing an OK button.

The Return is often also referred as the Enter and they usually perform identical functions; however in some particular applications (mainly page layout) Return operates specifically like the Carriage Return key from which it originates. In contrast, the Enter is commonly labelled with its name in plain text on generic PC keyboards.


References

Solution 4 - Selenium

Now that Selenium 2 has been released, it's a bit easier to send an Enter key, since you can do it with the send_keys method of the selenium.webdriver.remote.webelement.WebElement class (this example code is in Python, but the same method exists in Java):

>>> from selenium import webdriver
>>> wd = webdriver.Firefox()
>>> wd.get("http://localhost/example/page")
>>> textbox = wd.find_element_by_css_selector("input")
>>> textbox.send_keys("Hello World\n")

Solution 5 - Selenium

In Python

Step 1. from selenium.webdriver.common.keys import Keys

Step 2. driver.find_element_by_name("").send_keys(Keys.ENTER)

Note: you have to write Keys.ENTER

Solution 6 - Selenium

When writing HTML tests, the ENTER key is available as ${KEY_ENTER}.

You can use it with sendKeys, here is an example:

sendKeys | id=search | ${KEY_ENTER}

Solution 7 - Selenium

selenium.keyPress("css=input.tagit-input.ui-autocomplete-input", "13");

Solution 8 - Selenium

You just do this:

final private WebElement input = driver.findElement(By.id("myId"));
input.clear();
input.sendKeys(value); // The value we want to set to input
input.sendKeys(Keys.RETURN);

Solution 9 - Selenium

For those folks who are using WebDriverJS Keys.RETURN would be referenced as

webdriver.Key.RETURN

A more complete example as a reference might be helpful too:

var pressEnterToSend = function () {
    var deferred = webdriver.promise.defer();
    webdriver.findElement(webdriver.By.id('id-of-input-element')).then(function (element) {
        element.sendKeys(webdriver.Key.RETURN);
        deferred.resolve();
    });

    return deferred.promise;
};

Solution 10 - Selenium

For Selenium Remote Control with Java:

selenium.keyPress("elementID", "\13");

For Selenium WebDriver (a.k.a. Selenium 2) with Java:

driver.findElement(By.id("elementID")).sendKeys(Keys.ENTER);

Or,

driver.findElement(By.id("elementID")).sendKeys(Keys.RETURN);

Another way to press Enter in WebDriver is by using the Actions class:

Actions action = new Actions(driver);
action.sendKeys(driver.findElement(By.id("elementID")), Keys.ENTER).build().perform();

Solution 11 - Selenium

driver.findElement(By.id("Value")).sendKeys(Keys.RETURN); or driver.findElement(By.id("Value")).sendKeys(Keys.ENTER);

Solution 12 - Selenium

search = browser.find_element_by_xpath("//*[@type='text']")
search.send_keys(u'\ue007')

#ENTER = u'\ue007'

Refer to Selenium's documentation 'Special Keys'.

Solution 13 - Selenium

I just like to note that I needed this for my Cucumber tests and found out that if you like to simulate pressing the enter/return key, you need to send the :return value and not the :enter value (see the values described here)

Solution 14 - Selenium

You can call submit() on the element object in which you entered your text.

Alternatively, you can specifically send the Enter key to it as shown in this Python snippet:

from selenium.webdriver.common.keys import Keys
element.send_keys(Keys.ENTER) # 'element' is the WebElement object corresponding to the input field on the page

Solution 15 - Selenium

Try to use an XPath expression for searching the element and then, the following code works:

driver.findElement(By.xpath(".//*[@id='txtFilterContentUnit']")).sendKeys(Keys.ENTER);

Solution 16 - Selenium

If you are looking for "how to press the Enter key from the keyboard in Selenium WebDriver (Java)",then below code will definitely help you.

// Assign a keyboard object
Keyboard keyboard = ((HasInputDevices) driver).getKeyboard();

// Enter a key
keyboard.pressKey(Keys.ENTER);

Solution 17 - Selenium

To enter keys using Selenium, first you need to import the following library:

import org.openqa.selenium.Keys

then add this code where you want to enter the key

WebElement.sendKeys(Keys.RETURN);

You can replace RETURN with any key from the list according to your requirement.

Solution 18 - Selenium

There are the following ways of pressing keys - C#:

Driver.FindElement(By.Id("Value")).SendKeys(Keys.Return);

OR

OpenQA.Selenium.Interactions.Actions action = new OpenQA.Selenium.Interactions.Actions(Driver);
action.SendKeys(OpenQA.Selenium.Keys.Escape);

OR

IWebElement body = GlobalDriver.FindElement(By.TagName("body"));
body.SendKeys(Keys.Escape);

Solution 19 - Selenium

object.sendKeys("your message", Keys.ENTER);

It works.

Solution 20 - Selenium

When you don't want to search any locator, you can use the Robot class. For example,

Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);

Solution 21 - Selenium

If you just want to press the Enter key (python):

from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys

action = ActionChains(driver)
action.send_keys(Keys.ENTER)
action.perform()

Solution 22 - Selenium

It could be achieved using Action interface as well. In case of WebDriver -

WebElement username = driver.findElement(By.name("q"));
username.sendKeys(searchKey);
Actions action = new Actions(driver);
action.sendKeys(Keys.RETURN);
action.perform();

Solution 23 - Selenium

You can try:

selenium.keyPress("id="", "\\13");

Solution 24 - Selenium

For Ruby:

driver.find_element(:id, "XYZ").send_keys:return

Solution 25 - Selenium

For Selenium WebDriver using XPath (if the key is visible):

driver.findElement(By.xpath("xpath of text field")).sendKeys(Keys.ENTER);

or,

driver.findElement(By.xpath("xpath of text field")).sendKeys(Keys.RETURN);

Solution 26 - Selenium

I had to send the Enter key in the middle of a text. So I passed the following text to send keys function to achieve 1\n2\n3:

1\N{U+E007}2\N{U+E007}3

Solution 27 - Selenium

If you are in this specific situation:

a) want to just press the key, but you not have a specific webElement to click on

b) you are using Selenium 2 (WebDriver)

Then the solution is:

	Actions builder = new Actions(webDriverInstance);
	builder.sendKeys(Keys.RETURN).perform();

Solution 28 - Selenium

Java/JavaScript:

You could probably do it this way also, non-natively:

public void triggerButtonOnEnterKeyInTextField(String textFieldId, String clickableButId)
{
    ((JavascriptExecutor) driver).executeScript(
        "   elementId = arguments[0];
            buttonId = arguments[1];
            document.getElementById(elementId)
                .addEventListener("keyup", function(event) {
                    event.preventDefault();
                    if (event.keyCode == 13) {
                        document.getElementById(buttonId).click();
                    }
                });",

        textFieldId,
        clickableButId);
}

Solution 29 - Selenium

Actions action = new Actions(driver);
action.sendKeys(Keys.RETURN);

Solution 30 - Selenium

For everyone using JavaScript / Node.js, this worked for me:

driver.findElement(By.xpath('xpath')).sendKeys('ENTER');

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestioncroixhaugView Question on Stackoverflow
Solution 1 - SeleniumRalphView Answer on Stackoverflow
Solution 2 - SeleniumPrashanth SamsView Answer on Stackoverflow
Solution 3 - Seleniumundetected SeleniumView Answer on Stackoverflow
Solution 4 - SeleniumEli CourtwrightView Answer on Stackoverflow
Solution 5 - SeleniumjayeshView Answer on Stackoverflow
Solution 6 - SeleniumMaurice SvayView Answer on Stackoverflow
Solution 7 - SeleniumNirmal PatelView Answer on Stackoverflow
Solution 8 - Seleniumhoang nguyenView Answer on Stackoverflow
Solution 9 - SeleniumGreg StewartView Answer on Stackoverflow
Solution 10 - SeleniumRipon Al WasimView Answer on Stackoverflow
Solution 11 - SeleniumMosam MehtaView Answer on Stackoverflow
Solution 12 - SeleniumAshish guptaView Answer on Stackoverflow
Solution 13 - SeleniumPascal LindelaufView Answer on Stackoverflow
Solution 14 - SeleniumentropyView Answer on Stackoverflow
Solution 15 - SeleniumAbhijeetView Answer on Stackoverflow
Solution 16 - SeleniumPlaban DwivedyView Answer on Stackoverflow
Solution 17 - SeleniumRNSView Answer on Stackoverflow
Solution 18 - SeleniumMohsin AwanView Answer on Stackoverflow
Solution 19 - SeleniumSanju AbelView Answer on Stackoverflow
Solution 20 - SeleniumKrzysztof WalczewskiView Answer on Stackoverflow
Solution 21 - SeleniumgrantrView Answer on Stackoverflow
Solution 22 - SeleniumanujinView Answer on Stackoverflow
Solution 23 - SeleniumdexterView Answer on Stackoverflow
Solution 24 - SeleniumSoftwareTestingEnthusiastView Answer on Stackoverflow
Solution 25 - SeleniumKumrun Nahar KeyaView Answer on Stackoverflow
Solution 26 - SeleniumAnandView Answer on Stackoverflow
Solution 27 - SeleniumIvo MitevView Answer on Stackoverflow
Solution 28 - SeleniumdjangofanView Answer on Stackoverflow
Solution 29 - SeleniumJack 666View Answer on Stackoverflow
Solution 30 - SeleniumLord ElrondView Answer on Stackoverflow