What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Jest can run Selenium browser tests: Jest discovers and runs the tests, provides assertions and lifecycle hooks, and Selenium’s selenium-webdriver package controls the browser. This guide sets up a Jest project, runs a form interaction in Chrome, and ensures the browser closes even if a test fails.

What Jest and Selenium each do

Jest is the test runner. It provides constructs such as describe, test, expect, and hooks including beforeAll and afterAll. Selenium WebDriver is the browser automation layer: it opens a browser, navigates to pages, finds elements, interacts with them, and reads results. Selenium describes WebDriver as software that “drives a browser natively” (Selenium WebDriver documentation).

Selenium lists Jest as an option for organizing tests, although its JavaScript walkthrough demonstrates Mocha. Jest is therefore a practical choice when it suits your project; it is not Selenium’s only supported test-runner approach (Selenium test runner guidance).

Prerequisites and installation

Check Node.js

The Selenium WebDriver JavaScript API page currently requires Node.js 22 or newer. Its support table lists Node 22 through 2027-04-30, Node 24 through 2028-04-30, and Node 26 through 2029-04-30. Those dates are the API page’s current support information, not a permanent compatibility promise; check the page when choosing a runtime (Selenium WebDriver JavaScript API).

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Elebase USB to USB C Adapter for iPhone 18 Pro Max,USBC Car Charger Adapter
  • Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
  • Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
  • Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
  • Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
  • 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.

Install the packages

From an existing project directory, install Jest as a development dependency and Selenium’s JavaScript binding:

npm install --save-dev jest
npm install selenium-webdriver

The binding package is named selenium-webdriver. Follow your project’s package-management conventions if it classifies runtime dependencies differently. In the documented default setup, Selenium Manager handles browser driver installation; you do not normally need to download and configure a driver manually (Selenium WebDriver JavaScript API).

Add a test script

In package.json, add or merge a test script in the existing scripts object:

Rank #2
Anker USB-C Hub, 5-in-1 USB Hub for Laptops, 4K HDMI Multiport Adapter
  • 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
  • 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
  • Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
  • 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
  • What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
{
  "scripts": {
    "test": "jest"
  }
}

Jest’s getting-started guide uses this package-script pattern to run tests (Jest Getting Started).

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Write a Selenium test for Jest

Create web-form.test.js in the project. Jest recognizes the .test.js filename pattern by default. This CommonJS example starts Chrome once for the suite, submits text to Selenium’s demonstration form, checks the page’s visible result, and quits the browser in a cleanup hook:

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

describe('web form', () => {
  let driver;

  beforeAll(async () => {
    driver = await new Builder().forBrowser(Browser.CHROME).build();
  });

  afterAll(async () => {
    if (driver) await driver.quit();
  });

  test('submits a value', async () => {
    await driver.get('https://www.selenium.dev/selenium/web/web-form.html');
    await driver.findElement(By.name('my-text')).sendKeys('Selenium');
    await driver.findElement(By.css('button')).click();
    const message = await driver.findElement(By.id('message')).getText();
    expect(message).toBe('Received!');
  });
});

The form URL and the interaction pattern follow Selenium’s first-script example: locate the input by name, enter text, click a button, read the resulting message, and verify its value (Selenium first script).

Rank #3
Sale
Anker USB C Hub, 7in1 Multi-Port USB Adapter, 4K@60Hz USBC to HDMI Splitter
  • Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
  • Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
  • Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
  • Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
  • What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.

Why the test is asynchronous

WebDriver commands return promises. Use await for navigation, element lookup, typing, clicking, and reads so each operation finishes before the next one runs. The test function is marked async, and Jest waits for its returned promise. The assertion checks an observable page result rather than merely confirming that the commands ran.

Choose browser-session scope deliberately

This example creates one session in beforeAll and closes it in afterAll. That avoids starting a separate browser for every test, but tests in the suite share browser state. If one test changes the page, cookies, or other session state, later tests may depend on its effects. For stronger isolation, create and quit a driver per test with beforeEach and afterEach instead. Jest supports both suite- and test-level hooks (Jest Getting Started).

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Keep cleanup in an afterAll or afterEach hook rather than only at the end of the test body: an assertion failure should not leave the browser session open. The guard prevents calling quit() if browser construction did not assign a driver.

Rank #4
Sale
UGREEN USB to USB C Adapter Combo 4-Pack, 10Gbps USB C Converter Space Gray
  • Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
  • Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
  • Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
  • Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
  • Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft

Use ES modules if your project is configured for them

The sample uses CommonJS require, matching Selenium’s quick-start style. If your project is configured for ES modules, use its established import syntax and Jest configuration rather than mixing module systems in the same test file.

Run the test

Run the script from the project directory:

npm test

Jest should discover web-form.test.js, start the configured browser session, and report whether the assertion passed. If your project has multiple tests and you want to run only this file while diagnosing it, invoke Jest with the filename:

npx jest web-form.test.js
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Troubleshoot common failures

Unsupported Node.js version

If installation or execution reports a runtime compatibility problem, check node --version and use a Node release supported by the current Selenium API page. The page’s minimum is Node 22; its supported-version table can change.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Best Value
Anker USB C Hub, 5-in-1 USBC to HDMI Splitter with 4K Display
  • 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
  • Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
  • Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
  • HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
  • What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.

Jest cannot find or run the test

Confirm the file ends in .test.js, that Jest is installed in the project, and that package.json has a test script invoking jest. Run commands from the directory containing that package file.

Browser session creation fails

Check that Chrome is installed and available in the environment where the test runs. Selenium Manager handles driver setup in the documented default workflow, but that does not install the browser itself. If the test is running in a restricted or remote environment, verify that it permits launching or connecting to the requested browser.

Element lookup fails

Make sure the test navigated to the intended URL and that the locator matches the current page. The sample uses By.name('my-text'), By.css('button'), and By.id('message'); an incorrect locator or a page that has not reached the expected state prevents the following interaction from succeeding.

The result is missing or commands race

Await every WebDriver operation and keep the test function asynchronous. If a page’s behavior is slower or different in your environment, investigate the page state and timing rather than asserting a result before the relevant element or text is available. The example uses Selenium’s documented form fixture; for your own application, choose an observable result that confirms the behavior under test.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Or skip the browser setup

If you need screenshots rather than interactive browser assertions, ScreenshotNeo is a website screenshot API and MCP server. A single GET request can return a screenshot or PDF; its cleanup options accept cookie or consent banners and remove more than 60 known consent platforms, newsletter popups, and chat widgets before capture. Each cleanup step can be disabled. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, with response headers indicating the page verdict and billing status. AI agents can use its MCP server tools, including take_screenshot, get_page_info, and capture_pdf. It is not a replacement for Selenium when a test must interact with a page and assert application behavior.

For example, with an API key, this cURL request captures a page as WebP (ScreenshotNeo documentation):

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 shots. Sign up for ScreenshotNeo free.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.