# Selenium with Java

Your guide to running tests using Java 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).

## Prerequisites

- BrowserStack Username and Access key. You can find this in your [account profile](/content/accounts/profile/details/index.html). If you do not have an account yet, please sign up for a [Free Trial](/content/users/sign_up/index.html).

### Maven

- JDK 11+, Maven 3.6+, Selenium 4.23+ (W3C).
- If you are using CLI for running tests, ensure that [Maven](https://maven.apache.org/install.html) is installed on your machine, its environment variables are set, and its bin is added to system path, `$PATH`.

### Gradle

- Java v9+
- If you are using CLI for running tests, ensure that [Gradle](https://gradle.org/install/) is installed on your machine, its environment variables are set, and its bin is added to system path, `$PATH`.

## Run a sample build

Run a sample Java test build using your preferred method on BrowserStack:

- [Maven](/content/docs/automate/selenium/getting-started/java#Maven/index.html)
- [Gradle](/content/docs/automate/selenium/getting-started/java#Gradle/index.html)

If you are using Maven, follow the given steps to run the sample build:

- [Eclipse IDE](/content/docs/automate/selenium/getting-started/java#Eclipse_IDE/index.html)
- [IntelliJ IDEA](/content/docs/automate/selenium/getting-started/java#IntelliJ_IDEA/index.html)
- [CLI](/content/docs/automate/selenium/getting-started/java#CLI/index.html)

### Configure your browserstack.yml config file

The `browserstack.yml` file holds all the required capabilities to run your tests on BrowserStack

#### Set access credentials

Set `userName` and `accessKey` properties in the `browserstack.yml` file, available in the root directory, to authenticate your tests on BrowserStack.

### Select desktop browsers or real devices from a list of 3000+ available combinations:

#### 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 your 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:

- Enable 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

Auto-enabled 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)

### Update the browserstack.yml config file

Copy and replace the `platforms` object in the `browserstack.yml` file.

```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
selfHeal: YOUR_SELF_HEAL
```

### Run sample tests on BrowserStack

Run the tests using the following steps:

Install dependencies and run a sample test build on BrowserStack:

```bash
mvn test
```

If you are using Gradle, follow the given steps to run the sample build:

```bash
gradle build
gradle clean sampleTest
```

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

## Next steps

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).
