actions.keyDown(Keys.ALT).perform();
// do something while Alt is held
actions.keyUp(Keys.ALT).perform();
Sample Program
This test opens Google, clicks the search box, holds Shift while typing 'hello' to get uppercase 'HELLO', then checks if the input value matches.
Selenium Java
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;
public class KeyboardActionsTest {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "path/to/chromedriver");
WebDriver driver = new ChromeDriver();
try {
driver.get("https://www.google.com");
WebElement searchBox = driver.findElement(By.name("q"));
Actions actions = new Actions(driver);
// Click the search box
searchBox.click();
// Hold SHIFT, type'hello', release SHIFT
actions.keyDown(Keys.SHIFT).sendKeys("hello").keyUp(Keys.SHIFT).perform();
// Verify the input value is'HELLO'
String value = searchBox.getAttribute("value");
if ("HELLO".equals(value)) {
System.out.println("Test Passed: Text is uppercase as expected.");
} else {
System.out.println("Test Failed: Text is '" + value + "' instead of 'HELLO'.");
}
} finally {
driver.quit();
}
}
}
OutputSuccess
Important Notes
Always call perform() to execute the keyboard actions.
Use Keys enum for special keys like SHIFT, CONTROL, ALT, ENTER.
Remember to release keys with keyUp to avoid stuck keys in tests.
Summary
Keyboard actions simulate pressing and releasing keys in Selenium.
Use keyDown to press and hold a key, keyUp to release it.
This helps test keyboard shortcuts and input behavior on web pages.
Practice
(1/5)
1. What does the keyDown method do in Selenium keyboard actions?
easy
A. Types text into an input field
B. Releases a specified key
C. Presses and holds down a specified key
D. Clicks on a web element
Solution
Step 1: Understand the purpose of keyDown
The keyDown method simulates pressing and holding a key on the keyboard.
Step 2: Differentiate from keyUp
keyUp releases the key, so it is not the same as keyDown.
Final Answer:
Presses and holds down a specified key -> Option C
Quick Check:
keyDown = press and hold key [OK]
Hint: Remember: keyDown = press and hold key [OK]
Common Mistakes:
Confusing keyDown with keyUp
Thinking keyDown types text
Assuming keyDown clicks elements
2. Which of the following is the correct syntax to press and hold the SHIFT key using Selenium Actions in Java?
easy
A. actions.keyDown(Keys.SHIFT).perform();
B. actions.keyUp(Keys.SHIFT).perform();
C. actions.pressKey(Keys.SHIFT).perform();
D. actions.holdKey(Keys.SHIFT).perform();
Solution
Step 1: Recall the correct method name
The method to press and hold a key is keyDown, not keyUp or others.
Step 2: Check method chaining and parameters
The syntax actions.keyDown(Keys.SHIFT).perform(); correctly presses and holds SHIFT key.
Final Answer:
actions.keyDown(Keys.SHIFT).perform(); -> Option A
Quick Check:
keyDown + perform() = press and hold key [OK]
Hint: Use keyDown(Keys.KEY).perform() to hold keys [OK]
Common Mistakes:
Using keyUp instead of keyDown to press key
Using non-existent methods like pressKey or holdKey
Forgetting to call perform() to execute action
3. What will be the effect of the following Selenium Java code snippet?
Actions actions = new Actions(driver);
actions.keyDown(Keys.CONTROL).sendKeys("a").keyUp(Keys.CONTROL).perform();
medium
A. Releases the CONTROL key before pressing 'a'
B. Types the letter 'a' without any modifier
C. Throws a runtime exception due to wrong method order
D. Selects all text on the active element
Solution
Step 1: Analyze the keyDown and sendKeys sequence
The code presses and holds CONTROL, then sends 'a', then releases CONTROL.
Step 2: Understand the effect of CONTROL + 'a'
CONTROL + 'a' is the common shortcut to select all text in many applications.
Final Answer:
Selects all text on the active element -> Option D
Quick Check:
CONTROL + a = select all [OK]
Hint: CONTROL + a usually means select all text [OK]
Common Mistakes:
Thinking it types 'a' without CONTROL
Assuming method order causes error
Ignoring keyUp releases key after sendKeys
4. Identify the error in this Selenium Java code snippet:
Actions actions = new Actions(driver);
actions.keyUp(Keys.SHIFT).sendKeys("hello").perform();
medium
A. sendKeys cannot be chained after keyUp
B. keyUp is called without a preceding keyDown for SHIFT
C. perform() is missing at the end
D. Keys.SHIFT is not a valid key constant
Solution
Step 1: Understand keyUp usage
keyUp releases a key that must have been pressed before with keyDown.
Step 2: Check the code sequence
The code calls keyUp(Keys.SHIFT) without pressing SHIFT first, which is incorrect.
Final Answer:
keyUp is called without a preceding keyDown for SHIFT -> Option B
Quick Check:
keyUp needs prior keyDown [OK]
Hint: Always press keyDown before keyUp for same key [OK]
Common Mistakes:
Calling keyUp without keyDown first
Assuming sendKeys can't follow keyUp
Forgetting perform() call
5. You want to simulate typing uppercase text "HELLO" in an input box using Selenium Actions. Which code snippet correctly achieves this using keyDown and keyUp?
hard
A. actions.keyDown(Keys.SHIFT).sendKeys("hello").keyUp(Keys.SHIFT).perform();
B. actions.sendKeys("HELLO").perform();
C. actions.keyDown(Keys.SHIFT).sendKeys("HELLO").keyUp(Keys.SHIFT).perform();
D. actions.keyUp(Keys.SHIFT).sendKeys("hello").keyDown(Keys.SHIFT).perform();
Solution
Step 1: Understand how to type uppercase with SHIFT
Holding SHIFT and typing lowercase letters results in uppercase letters.
Step 2: Analyze each option
actions.keyDown(Keys.SHIFT).sendKeys("hello").keyUp(Keys.SHIFT).perform(); holds SHIFT, types "hello" (lowercase), then releases SHIFT, producing "HELLO". actions.sendKeys("HELLO").perform(); types "HELLO" directly but does not use keyDown/keyUp. actions.keyDown(Keys.SHIFT).sendKeys("HELLO").keyUp(Keys.SHIFT).perform(); holds SHIFT and types "HELLO" which results in double shift effect (may cause unexpected input). actions.keyUp(Keys.SHIFT).sendKeys("hello").keyDown(Keys.SHIFT).perform(); releases SHIFT before typing, which is incorrect.
Final Answer:
actions.keyDown(Keys.SHIFT).sendKeys("hello").keyUp(Keys.SHIFT).perform(); -> Option A
Quick Check:
Hold SHIFT + lowercase = uppercase letters [OK]
Hint: Hold SHIFT and type lowercase to get uppercase [OK]
Common Mistakes:
Typing uppercase letters while holding SHIFT
Releasing SHIFT before typing
Not using keyDown/keyUp for SHIFT
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.