Selenium WebDriver with Node.js Guide - Selenium WebDriver Node.js

Selenium WebDriver with Node.js is a powerful tool for automating web application testing. By using Selenium WebDriver with Node.js, you can control browsers, interact with elements on web pages, and write automated test scripts with ease. With support for popular browsers like Chrome, Firefox, and Safari, Selenium WebDriver allows you to test web applications across multiple platforms.

This article provides a detailed guide on using Selenium WebDriver with Node.js, covering installation, configuration, and practical examples to help you get started with efficient automated web application testing.

 

Guide to using Selenium WebDriver with Node.js

Install Selenium WebDriver and dependencies

Open your terminal or command prompt and navigate to your project directory.

Run the following command to install Selenium WebDriver and the necessary dependencies:

npm install selenium-webdriver chromedriver

This command will install Selenium WebDriver for Node.js and the Chrome driver (chromedriver) for controlling the Chrome browser.

Import and initialize WebDriver

Import the required modules

const { Builder, By, Key, until } = require('selenium-webdriver');

Initialize the WebDriver object for the desired browser (e.g., Chrome):

const driver = new Builder().forBrowser('chrome').build();

Use WebDriver to interact with the browser

Open a URL

await driver.get('https://www.example.com');

Find and interact with elements:

// Find an element by ID
const element = await driver.findElement(By.id('my-element-id'));

// Enter text into an input element
await element.sendKeys('Hello, World!');

// Press the Enter key
await element.sendKeys(Key.ENTER);

// Wait for an element to be located
await driver.wait(until.elementLocated(By.css('.my-element-class')));

// Click on an element
await element.click();

You can use methods like findElement, sendKeys, click, wait, etc., to interact with elements on the web page.

Close the WebDriver

Close the browser and end the session:

await driver.quit();

 

Here is a detailed example of finding and entering data into an input field on a web page:

const { Builder, By, Key, until } = require('selenium-webdriver');

async function runTest() {
  try {
    const driver = new Builder().forBrowser('chrome').build();

    await driver.get('https://www.example.com');

    // Find the input element by ID
    const inputElement = await driver.findElement(By.id('my-input-id'));

    // Enter data into the input field
    await inputElement.sendKeys('Hello, World!');

    // Press the Enter key
    await inputElement.sendKeys(Key.ENTER);

    // Close the browser
    await driver.quit();
  } catch (error) {
    console.error('Test failed:', error);
  }
}

runTest();

 

In this example, we find the input element by ID (my-input-id), then use the sendKeys method to enter data into the input field. Finally, we press the Enter key using sendKeys(Key.ENTER) and close the browser with driver.quit().