This article explores how to perform form validation in Selenium WebDriver, step by step.
What Is Form Validation?
Form validation refers to verifying the data input in fields such as textboxes, dropdowns, checkboxes, and radio buttons on a web form. It ensures that:
- Required fields are not left empty.
- Data entered matches the expected format (e.g., email format, numeric values).
- Invalid inputs are rejected, and appropriate error messages are displayed.
- The functionality of fields like buttons (Submit, Reset) works as intended.
Types of Form Validation
- Client-Side Validation:
Performed using JavaScript or HTML5 attributes, it validates the input on the user’s browser before submitting the form to the server. - Server-Side Validation:
Takes place on the server after the form data is submitted. It ensures deeper validation and prevents malicious input.
Steps for Form Validation Using Selenium WebDriver
Here’s how you can use Selenium WebDriver to validate a web form:
1. Set Up Selenium WebDriver
Ensure your Selenium WebDriver is set up with a proper programming language (like Java, Python, or C#) and a browser driver (e.g., ChromeDriver).
Example of setting up a WebDriver in Java:
javaCopyEditWebDriver driver = new ChromeDriver();driver.manage().window().maximize();driver.get("https://example.com/form");
2. Identify Form Elements
Use Selenium’s locators (like id, name, className, xpath, or cssSelector) to interact with form elements such as text fields, dropdowns, radio buttons, and checkboxes.
Example:
javaCopyEditWebElement usernameField = driver.findElement(By.id("username"));WebElement emailField = driver.findElement(By.name("email"));WebElement submitButton = driver.findElement(By.xpath("//button[@type='submit']"));
3. Perform Input Validation
a. Test Empty Fields
Check how the application responds when required fields are left empty.
javaCopyEditsubmitButton.click();WebElement errorMessage = driver.findElement(By.id("username-error"));Assert.assertEquals(errorMessage.getText(), "This field is required.");
b. Validate Input Length
Ensure fields like usernames or passwords have minimum and maximum character limits.
javaCopyEditusernameField.sendKeys("ab");submitButton.click();WebElement errorMessage = driver.findElement(By.id("username-error"));Assert.assertEquals(errorMessage.getText(), "Username must be at least 3 characters.");
c. Test Field Formats
Validate specific formats like email addresses, phone numbers, or dates.
javaCopyEditemailField.sendKeys("invalid-email");submitButton.click();WebElement errorMessage = driver.findElement(By.id("email-error"));Assert.assertEquals(errorMessage.getText(), "Please enter a valid email address.");
4. Verify Dropdowns and Checkboxes
a. Dropdown Validation
Check that the dropdown provides the expected options and default selection.
javaCopyEditSelect dropdown = new Select(driver.findElement(By.id("country")));Assert.assertTrue(dropdown.getOptions().size() > 1);dropdown.selectByVisibleText("India");
b. Checkbox and Radio Button Validation
Ensure checkboxes and radio buttons function as expected.
javaCopyEditWebElement termsCheckbox = driver.findElement(By.id("terms"));termsCheckbox.click();Assert.assertTrue(termsCheckbox.isSelected());
5. Test Button Functionality
Verify that the submit and reset buttons perform their intended actions.
- Submit Button: Validate the form submission process and the success or error message displayed.
- Reset Button: Ensure the form fields are cleared when the reset button is clicked.
Best Practices for Form Validation in Selenium WebDriver
- Use Explicit Waits:
To handle dynamic web elements, apply WebDriverWait to wait for elements to load.
javaCopyEditWebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("username")));
- Handle Alerts:
If the form triggers JavaScript alerts, use switchTo().alert() to handle them. - Data-Driven Testing:
Test with multiple data sets using libraries like Apache POI or TestNG for data-driven testing. - Browser Compatibility:
Perform tests on multiple browsers to ensure consistency.
Why Learn Form Validation in Selenium WebDriver?
Form validation is a critical skill for any software tester. Whether you’re working on web applications or preparing for a role in automation testing, mastering Selenium WebDriver is vital. Enrolling in a Selenium training in Chennai or a software testing course in Chennai equips you with the practical knowledge to handle real-world challenges in test automation.
Conclusion
Form validation in Selenium WebDriver is a vital aspect of ensuring the robustness of web applications. By mastering techniques such as input validation, dropdown testing, and button functionality, testers can automate form testing efficiently. With hands-on training through a Selenium training in Chennai or a software testing course in Chennai, you can build expertise in using Selenium to enhance application quality and reliability.