๐ค Automating Form Filling Using Selenium and Python (English)
Selenium is a powerful tool for automating web browsers. With Python, you can use Selenium to automatically fill out and submit forms on websites—useful for testing, data entry, scraping, and automation tasks.
✅ 1. Setup: Install Selenium
bash
Copy
Edit
pip install selenium
Also, download a WebDriver for your browser (e.g., ChromeDriver for Chrome):
๐ https://chromedriver.chromium.org/downloads
Place the driver in your system PATH or in your project folder.
๐งฑ 2. Basic Form Automation Example
Suppose you want to fill out a simple form with name, email, and message.
๐งช Example Form HTML
html
Copy
Edit
<form id="contact-form">
<input type="text" name="name" />
<input type="email" name="email" />
<textarea name="message"></textarea>
<button type="submit">Send</button>
</form>
๐ Python Code Using Selenium
python
Copy
Edit
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time
# Set up the browser (Chrome in this case)
driver = webdriver.Chrome()
# Go to the form page
driver.get("https://example.com/contact")
# Fill in the fields
driver.find_element(By.NAME, "name").send_keys("John Doe")
driver.find_element(By.NAME, "email").send_keys("john@example.com")
driver.find_element(By.NAME, "message").send_keys("Hello, this is a test message.")
# Optionally wait or scroll
time.sleep(1)
# Submit the form
driver.find_element(By.XPATH, "//button[@type='submit']").click()
# Wait and close browser
time.sleep(3)
driver.quit()
๐ง 3. Common Ways to Locate Elements
Locator Method Example
By.ID By.ID, "username"
By.NAME By.NAME, "email"
By.CLASS_NAME By.CLASS_NAME, "form-input"
By.TAG_NAME By.TAG_NAME, "input"
By.XPATH By.XPATH, "//input[@name='name']"
By.CSS_SELECTOR By.CSS_SELECTOR, "input[name='email']"
⚠️ 4. Tips for Reliable Automation
Use time.sleep() or WebDriverWait to wait for elements to load.
Always handle exceptions using try/except to catch issues like missing elements.
Headless mode (for running without a UI):
python
Copy
Edit
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument("--headless")
driver = webdriver.Chrome(options=options)
๐ 5. Security Note
Don’t use Selenium to automate login or fill secure forms (like banking or CAPTCHAs) unless it's for testing your own application.
๐งช Optional: Wait for Elements
Use explicit waits for better reliability than time.sleep():
python
Copy
Edit
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
wait = WebDriverWait(driver, 10)
name_input = wait.until(EC.presence_of_element_located((By.NAME, "name")))
๐ Summary
Step Description
Install Selenium pip install selenium
Set up driver ChromeDriver/FirefoxDriver
Locate fields Use By.NAME, By.ID, By.XPATH, etc.
Fill and submit send_keys(), .click()
Wait & cleanup time.sleep() or WebDriverWait + driver.quit()
Learn Selenium Python Training in Hyderabad
Read More
Handling Alerts, Pop-ups, and iFrames in Selenium with Python
Handling Input Boxes, Buttons, and Checkboxes in Selenium
Visit Our Quality Thought Training in Hyderabad
Subscribe by Email
Follow Updates Articles from This Blog via Email
No Comments