# Selenium with NodeJS

Your guide to running tests using NodeJS on BrowserStack’s Selenium Grid of 3000+ real devices and desktop browsers.

This section covers running your first build with BrowserStack’s sample repo. To run builds with your existing test suite(s), skip to [integrate your test suite](/content/docs/automate/selenium/getting-started/integrate-your-tests/index.html).

#### Onboard faster with Test Companion

Launch in your IDE. Chat with the AI assistant to configure and run your first build instantly.

## Prerequisites

- You need to have BrowserStack Username and Access key, which you can find in your [account profile](/content/accounts/profile/details/index.html). If you have not created an account yet, you can [sign up for a Free Trial](/content/users/sign_up/index.html)
- Node v12+ installed on your machine.

## Run a sample build

Run a sample NodeJS test build, which is based on the JestJS runner on BrowserStack:

### Get our sample project

Get our sample project using one of the following options.

#### Option 1: Download the project

[Download ZIP](https://github.com/browserstack/jest-js-browserstack/archive/refs/heads/main.zip)

#### Option 2: Clone the sample repository

Clone our sample repository and install the dependencies.

```bash
git clone https://github.com/browserstack/jest-js-browserstack.git
cd jest-js-browserstack
npm install
```

### Configure the config file

Configure a few parameters in the `browserstack.yml` config file to run the sample build.

#### Set access credentials

Use the `userName` and `accessKey` variables to set your BrowserStack access credentials in the [browserstack.yml](https://github.com/browserstack/jest-js-browserstack/blob/main/browserstack.yml) file to authenticate your tests.

#### Configure browser or device combinations

Choose from 3000+ real mobile devices and browsers available on BrowserStack:

- Parallel thread #1: Windows 10 - Chrome 120
- Parallel thread #2: OS X Monterey - Safari 15.6
- Parallel thread #3: iOS 15 - iPhone 13

Did you know?

You can optimize your web apps for mobile users by testing them on mobile devices. To get started, select a mobile device above.

[Why test on mobile browsers?](/content/docs/automate/selenium/deliver-better-mobile-user-exp#why-test-on-mobile-browsers/index.html)

#### Configure AI Agents

You can enable the following AI agents by adding the respective configurations in your `browserstack.yml` file:

- **Self Heal Agent**: Auto-fix locator failures with the AI-powered self-heal agent and get up to 40% fewer locator failures. [Learn more](/content/docs/automate/selenium/self-healing/index.html)
- **Test Failure Analysis Agent**: AI-powered root cause analysis for test failures that can reduce debugging time. [Learn more](/content/docs/test-reporting-and-analytics/agents/test-failure-analysis/index.html)

#### Copy and replace the `browserstack.yml` config file

Replace the contents of `browserstack.yml` situated in the root directory of this project with the given config.

```yaml
userName: YOUR_USERNAME
accessKey: YOUR_ACCESS_KEY
platforms:
  - YOUR_FIRST_OS_TYPE: YOUR_FIRST_OS
    YOUR_FIRST_OS_VERSION_TYPE: YOUR_FIRST_OS_VERSION
    YOUR_FIRST_BROWSER_TYPE: YOUR_FIRST_BROWSER
    YOUR_FIRST_BROWSER_VERSION_TYPE: YOUR_FIRST_BROWSER_VERSION
  - YOUR_SECOND_OS_TYPE: YOUR_SECOND_OS
    YOUR_SECOND_OS_VERSION_TYPE: YOUR_SECOND_OS_VERSION
    YOUR_SECOND_BROWSER_TYPE: YOUR_SECOND_BROWSER
    YOUR_SECOND_BROWSER_VERSION_TYPE: YOUR_SECOND_BROWSER_VERSION
  - YOUR_THIRD_OS_TYPE: YOUR_THIRD_OS
    YOUR_THIRD_OS_VERSION_TYPE: YOUR_THIRD_OS_VERSION
    YOUR_THIRD_BROWSER_TYPE: YOUR_THIRD_BROWSER
    YOUR_THIRD_BROWSER_VERSION_TYPE: YOUR_THIRD_BROWSER_VERSION
browserstackLocal: true
buildName: browserstack-build-1
projectName: BrowserStack Sample
debug: false
networkLogs: false
consoleLogs: errors
selfHeal: YOUR_SELF_HEAL
```

### Execute the build on BrowserStack

You are now ready to run your build on BrowserStack. From the root directory of this project, run the given command.

```bash
npm run sample-test
```

After you run your test, visit the [Automate dashboard](https://automate.browserstack.com/) to view your test results.

After you have successfully run your first test on BrowserStack, try [integrating your test suite with BrowserStack](/content/docs/automate/selenium/getting-started/integrate-your-tests/index.html).
