Bird
Raised Fist0
Selenium Javatesting~3 mins

Why Typing text (sendKeys) in Selenium Java? - Purpose & Use Cases

Choose your learning style10 modes available
The Big Idea

What if your tests could type perfectly every time without you lifting a finger?

The Scenario

Imagine you have to fill out hundreds of online forms by typing the same information again and again, like your name and address, all by hand.

The Problem

Typing manually is slow and tiring. You might make mistakes, miss fields, or get tired and lose focus. It's easy to forget a step or type wrong data.

The Solution

Using sendKeys in Selenium, you can automatically type text into form fields. This saves time, avoids mistakes, and lets your tests run smoothly without human help.

Before vs After
✗ Before
driver.findElement(By.id("name")).click(); // then manually type
✓ After
driver.findElement(By.id("name")).sendKeys("John Doe");
What It Enables

Automated typing lets your tests quickly and accurately fill forms, making testing faster and more reliable.

Real Life Example

Testing a signup page where the test automatically enters username, email, and password every time without typing manually.

Key Takeaways

Manual typing is slow and error-prone.

sendKeys automates typing text into fields.

This makes tests faster, consistent, and less tiring.

Practice

(1/5)
1. What does the sendKeys() method do in Selenium WebDriver?
easy
A. It takes a screenshot of the current page.
B. It types text into an input field on a web page.
C. It navigates to a new URL.
D. It clicks a button on the web page.

Solution

  1. Step 1: Understand the purpose of sendKeys()

    The sendKeys() method simulates typing text into input fields.
  2. Step 2: Compare with other actions

    Clicking buttons, navigating URLs, and taking screenshots are done by other methods, not sendKeys().
  3. Final Answer:

    It types text into an input field on a web page. -> Option B
  4. Quick Check:

    sendKeys() = types text [OK]
Hint: sendKeys() = typing text into fields [OK]
Common Mistakes:
  • Confusing sendKeys() with click()
  • Thinking sendKeys() navigates pages
  • Assuming sendKeys() takes screenshots
2. Which of the following is the correct syntax to type "hello" into a text input using Selenium in Java?
easy
A. driver.findElement(By.id("inputField")).sendKeys("hello");
B. driver.sendKeys(By.id("inputField"), "hello");
C. driver.findElement(By.id("inputField")).type("hello");
D. driver.findElement(By.id("inputField")).click("hello");

Solution

  1. Step 1: Locate element and use sendKeys()

    The correct way is to find the element first, then call sendKeys() on it with the text.
  2. Step 2: Check syntax correctness

    driver.findElement(By.id("inputField")).sendKeys("hello"); uses findElement and sendKeys correctly. Others use invalid methods or wrong parameters.
  3. Final Answer:

    driver.findElement(By.id("inputField")).sendKeys("hello"); -> Option A
  4. Quick Check:

    findElement + sendKeys() = correct syntax [OK]
Hint: Always find element first, then call sendKeys() [OK]
Common Mistakes:
  • Calling sendKeys() directly on driver
  • Using non-existent methods like type()
  • Passing text to click() method
3. What will be the result of the following code snippet?
WebElement input = driver.findElement(By.name("username"));
input.sendKeys("user123");
String value = input.getAttribute("value");
System.out.println(value);
medium
A. It prints an empty string
B. It prints: username
C. It throws NoSuchElementException
D. It prints: user123

Solution

  1. Step 1: Understand sendKeys() effect

    The sendKeys("user123") types "user123" into the input field.
  2. Step 2: Retrieve input value attribute

    The getAttribute("value") returns the current text inside the input, which is "user123".
  3. Final Answer:

    It prints: user123 -> Option D
  4. Quick Check:

    sendKeys() sets value, getAttribute("value") reads it [OK]
Hint: sendKeys() sets input value, getAttribute("value") reads it [OK]
Common Mistakes:
  • Expecting getAttribute("value") to return element name
  • Assuming sendKeys() throws exception without element
  • Thinking printed value is empty
4. Identify the error in the following code snippet that tries to type "admin" into a password field:
WebElement password = driver.findElement(By.id("pass"));
password.sendkeys("admin");
medium
A. Method name should be sendKeys with uppercase K.
B. The locator By.id("pass") is incorrect.
C. sendKeys cannot be used on password fields.
D. Missing driver initialization.

Solution

  1. Step 1: Check method spelling

    The method name is case-sensitive and must be sendKeys with uppercase 'K'.
  2. Step 2: Verify locator and usage

    The locator By.id("pass") is valid and sendKeys works on password fields. Driver initialization is assumed done.
  3. Final Answer:

    Method name should be sendKeys with uppercase K. -> Option A
  4. Quick Check:

    sendKeys() method name is case-sensitive [OK]
Hint: Remember exact method name: sendKeys() with capital K [OK]
Common Mistakes:
  • Typing sendkeys() with lowercase k
  • Assuming sendKeys() can't type passwords
  • Ignoring driver setup errors
5. You want to clear any existing text and then type "hello world" into a search box using Selenium in Java. Which code snippet correctly does this?
hard
A. driver.findElement(By.name("search")).sendKeys(""); driver.findElement(By.name("search")).sendKeys("hello world");
B. driver.findElement(By.name("search")).sendKeys(Keys.CONTROL + "a", Keys.DELETE); driver.findElement(By.name("search")).sendKeys("hello world");
C. driver.findElement(By.name("search")).clear(); driver.findElement(By.name("search")).sendKeys("hello world");
D. driver.findElement(By.name("search")).sendKeys("hello world");

Solution

  1. Step 1: Clear existing text properly

    The clear() method empties the input field safely before typing.
  2. Step 2: Type new text after clearing

    After clearing, calling sendKeys("hello world") types the new text correctly.
  3. Final Answer:

    driver.findElement(By.name("search")).clear(); driver.findElement(By.name("search")).sendKeys("hello world"); -> Option C
  4. Quick Check:

    Use clear() before sendKeys() to reset input [OK]
Hint: Use clear() before sendKeys() to replace text [OK]
Common Mistakes:
  • Trying to delete text with sendKeys() shortcuts incorrectly
  • Sending empty string to clear input
  • Not clearing input before typing new text
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard