How to Clear Input Field in Selenium: Simple Syntax & Example
To clear an input field in Selenium, use the
clear() method on the WebElement representing the input. For example, element.clear() removes any existing text from the input box.Syntax
The clear() method is called on a WebElement that represents an input field. It removes all text inside that input.
element: The WebElement for the input field.clear(): Method that clears the input's content.
python
element = driver.find_element(By.ID, "input_id")
element.clear()Example
This example opens a webpage with a text input, types some text, then clears it using clear(). It shows how to find the element and clear its content.
python
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options import time options = Options() options.add_argument('--headless') # Run browser in headless mode service = Service() driver = webdriver.Chrome(service=service, options=options) try: driver.get('https://www.w3schools.com/html/html_forms.asp') time.sleep(2) # Wait for page to load # Locate the input field for 'First name' input_field = driver.find_element(By.ID, 'fname') # Type text into the input input_field.send_keys('Hello Selenium') time.sleep(1) # Clear the input field input_field.clear() time.sleep(1) # Check if input is cleared cleared_text = input_field.get_attribute('value') print(f'Input field after clear(): "{cleared_text}"') finally: driver.quit()
Output
Input field after clear(): ""
Common Pitfalls
Some common mistakes when clearing input fields in Selenium include:
- Not locating the correct element before calling
clear(). - Trying to clear elements that are not input or textarea fields.
- Ignoring timing issues where the element is not yet interactable.
- Using
send_keys(Keys.BACKSPACE)repeatedly instead ofclear(), which is less efficient.
python
from selenium.webdriver.common.by import By # Wrong: Not locating element properly # element.clear() # This will fail if element is undefined # Right: Locate element first input_field = driver.find_element(By.ID, 'input_id') input_field.clear()
Quick Reference
Use this quick guide to clear input fields in Selenium:
| Action | Code Example | Notes |
|---|---|---|
| Locate input element | element = driver.find_element(By.ID, 'input_id') | Use appropriate locator strategy |
| Clear input field | element.clear() | Removes all text from input |
| Verify cleared | value = element.get_attribute('value') | Should be empty string after clear() |
| Avoid | Repeated backspace keys | Less efficient than clear() |
Key Takeaways
Use the clear() method on the input WebElement to remove all text.
Always locate the input element correctly before clearing.
Avoid using repeated backspace keys; clear() is simpler and faster.
Wait for the element to be interactable before calling clear().
Verify the input is cleared by checking its value attribute.