Yes, Selenium can definitely be used to fill out and submit forms on a website. Selenium is a powerful tool for controlling a web browser through the program. It's functional for all browsers, works on all major OS and its scripts are written in various languages i.e. Python, Java, C#, etc.
Here is a step-by-step guide on how you can use Selenium for filling out forms:
Python
- Installation
You need to first install Selenium. You can do this in Python using pip:
pip install selenium
- Import WebDriver
Next, import the Selenium WebDriver to access its functions:
from selenium import webdriver
- Choose Browser
Choose the browser that you want to run the tests in:
driver = webdriver.Firefox()
- Access the Form
Navigate to the url that holds the form using the get
function:
driver.get("http://www.example.com/form")
- Identify the Form Inputs
Identify the elements in the form using their names or ids:
username = driver.find_element_by_name('username')
password = driver.find_element_by_name('password')
- Fill and Submit the Form
Fill in the form using the send_keys
function and submit it using the submit
function:
username.send_keys("myusername")
password.send_keys("mypassword")
password.submit()
JavaScript
- Installation
You need to first install Selenium. You can do this in Node.js using npm:
npm install selenium-webdriver
- Import WebDriver
Next, import the Selenium WebDriver to access its functions:
const {Builder, By, Key, until} = require('selenium-webdriver');
- Choose Browser
Choose the browser that you want to run the tests in:
let driver = new Builder().forBrowser('firefox').build();
- Access the Form
Navigate to the url that holds the form using the get
function:
await driver.get('http://www.example.com/form');
- Identify the Form Inputs
Identify the elements in the form using their names or ids:
let username = await driver.findElement(By.name('username'));
let password = await driver.findElement(By.name('password'));
- Fill and Submit the Form
Fill in the form using the sendKeys
function and submit it using the submit
function:
await username.sendKeys('myusername');
await password.sendKeys('mypassword');
await password.submit();
Remember to always close the browser after finishing:
driver.quit()
await driver.quit();
If the form is built with JavaScript and not just simple HTML, you might need to use waits or timeouts to give the form inputs time to become available before you try to interact with them.