Clearing Text in a Text Box Using Selenium
Method 1 — clear() (standard approach):
Java
WebDriver driver = new FirefoxDriver();
driver.get("https://www.gmail.com");
WebElement emailField = driver.findElement(By.xpath("xpath_of_element1"));
emailField.sendKeys("Software Testing "); // Type some text
emailField.clear(); // Clear all text from the field
Full test example:
Java
@Test
public void clearAndRetype() {
driver.get("https://example.com/form");
WebElement input = driver.findElement(By.id("username"));
// Type initial text
input.sendKeys("oldUsername");
Assert.assertEquals(input.getAttribute("value"), "oldUsername");
// Clear and retype
input.clear();
Assert.assertEquals(input.getAttribute("value"), "");
input.sendKeys("newUsername");
Assert.assertEquals(input.getAttribute("value"), "newUsername");
}
Method 2 — Keyboard shortcuts:
Java
// Select All + Delete
WebElement input = driver.findElement(By.id("username"));
input.sendKeys(Keys.CONTROL + "a");
input.sendKeys(Keys.DELETE);
// Or using Actions class
Actions actions = new Actions(driver);
actions.click(input)
.keyDown(Keys.CONTROL)
.sendKeys("a")
.keyUp(Keys.CONTROL)
.sendKeys(Keys.DELETE)
.perform();
Method 3 — JavascriptExecutor:
Java
JavascriptExecutor js = (JavascriptExecutor) driver;
WebElement input = driver.findElement(By.id("username"));
js.executeScript("arguments[0].value='';", input);
Method 4 — Triple-click to select all then type:
Java
WebElement input = driver.findElement(By.id("username"));
input.click();
input.click();
input.click(); // Triple-click selects all text
input.sendKeys("newValue"); // Overwrites selected text
When clear() might not work:
- ✓Read-only fields — use JavascriptExecutor instead
- ✓React/Angular inputs that ignore clear() — use keyboard events
- ✓Inputs with
onchangelisteners — trigger event after clear
Key answer: Use element.clear() method to clear text from a text box using Selenium WebDriver.
