ScreenshotNeo

BlogHow-to

How to Integrate Parasoft Selenic with Automated Tests

Add Selenic to Java Selenium tests, analyze execution data, and configure optional healing, test impact analysis, and visual checks.

By the ScreenshotNeo team4 October 202610 min read

To integrate Parasoft Selenic with automated tests, install and license Selenic, attach its Java agent to the JVM that runs your Java Selenium tests, run a successful test, and analyze the execution data. For Maven, the basic pattern is mvn test -DargLine=-javaagent:/path/to/selenic_agent.jar=captureDom=true. The agent captures test execution information; the analyzer reviews it and can produce locator recommendations. Locator recommendations and automatic locator healing need captured DOM data and at least one successful agent-enabled test run.

This guide covers the minimum command-line setup first, then optional self-healing, test impact analysis, visual checkpoints, test creation, and IDE workflows. Selenic adds capabilities to a Selenium test workflow; it does not replace Selenium. Check the Selenic 2026.1 system requirements for the release you install, since compatibility details can change.

1. Check prerequisites and compatibility

The following requirements are for Selenic 2026.1, as listed in Parasoft’s versioned requirements. Confirm them against your selected release before changing a build.

Area Selenic 2026.1 requirements
Java Java 11, 17, or 21 for general use. Test impact analysis has the narrower requirement of Java 17 or 21.
Selenium Selenium 3.10 or later, or Selenium 4.
Test frameworks JUnit 4; JUnit 5.6.0 or later; TestNG 6.14 or later; Java Cucumber 4.3.0 through 7.
Build and IDE Maven 3.x. IntelliJ 2022.1–2025.3 and Eclipse 2022-03 or later are listed for IDE support.
Browsers Chrome, Microsoft Edge, Firefox, and Safari with the associated WebDriver executable.
Operating system and machine 64-bit system; at least 2 processor cores (4 recommended) and 4 GB RAM (8 GB recommended). Listed platforms include Windows Server 2022/2025 and Windows 11, macOS 11 or later, and supported Linux distributions.
Parallel execution Supported for the listed frameworks, including Selenium Grid. API-test creation is limited to sequential execution.

Parasoft Recorder does not support Linux recording. If you use optional API-test creation, also check its separate prerequisites and browser limitations below.

2. Install Selenic and configure its license

  1. Download and install the Selenic release that matches your environment from Parasoft.
  2. Configure the license using the instructions for your license type and CI environment. Keep license credentials in your CI secret store rather than in source control.
  3. Locate the Selenic agent and analyzer JAR files. The command-line workflow uses selenic_agent.jar during test execution and selenic_analyzer.jar afterward.
  4. Make the agent JAR available on the machine that launches the test JVM. Use an absolute path in CI to avoid working-directory ambiguity.

For full setup and release-specific license instructions, use the Parasoft Selenic 2026.1 command-line documentation.

3. Attach the agent to the test JVM

For a basic Maven run with DOM capture enabled, use:

mvn test -DargLine=-javaagent:/path/to/selenic_agent.jar=captureDom=true

Replace /path/to/selenic_agent.jar with the actual agent path. The captureDom=true option records DOM information when Selenium locates elements. Parasoft requires this option for locator recommendations and automatic bad-locator healing.

The critical detail is that -javaagent must reach the JVM that executes the tests. If your Maven project has existing Surefire or Failsafe configuration, preserve its JVM arguments and merge in the agent argument. A command-line -DargLine can override a value configured elsewhere, so inspect the effective plugin configuration before using it in CI.

Example with existing JVM arguments

If your build already sets an argument such as -Xmx2g, retain it alongside the agent:

mvn test -DargLine="-Xmx2g -javaagent:/opt/selenic/selenic_agent.jar=captureDom=true"

If your project uses a different test plugin, framework runner, or custom forked JVM, configure that runner to pass the same -javaagent argument to the test process. Do not assume that setting a property on Maven itself automatically instruments a separately launched test JVM.

4. Run a successful test and analyze the captured data

  1. Run one or more Selenium tests with the agent attached.
  2. Confirm at least one test completes successfully. Parasoft’s Selenic 2026.1 command-line documentation says, “At least one successful test execution is required for Selenic to provide recommendations.”
  3. Find the captured execution data in the Parasoft recorded-data directory for the user running the test, unless your configuration changes that location.
  4. Run the Selenic analyzer against the recorded data using the release’s command-line instructions.
  5. Review the generated report and recommendations. Apply locator changes deliberately, then rerun the tests to confirm that they still validate the intended behavior.

When coordinating multiple projects or runs, use a unique session identifier or build ID if your analyzer workflow supports it. Parasoft documents session-order considerations; keeping runs identifiable helps avoid analyzing the wrong recorded data.

5. Configure optional self-healing

Self-healing is optional. The selfHealing=true agent option enables the default locator and wait-condition healing features. A representative Maven invocation is:

mvn test -DargLine="-javaagent:/opt/selenic/selenic_agent.jar=captureDom=true,selfHealing=true"

Use the exact option syntax documented for the Selenic release you installed, especially if you combine several agent settings. Locator healing uses historical test execution information to attempt an updated locator when a locator breaks. It needs a successful prior execution and DOM capture. Wait-condition healing extends Selenium waits to address insufficient waits and does not have the same historical-run prerequisite. The documented default additional wait extension is 50% when the relevant self-healing options are enabled.

Healing is an attempt to keep a test running through a locator or wait change. It cannot determine whether a changed page still satisfies the test’s intended assertion. Review reports and keep assertions that detect genuine application regressions.

6. Optional: use test impact analysis

Test impact analysis (TIA) is a separate coverage workflow. It identifies Selenium tests associated with changed application code so a targeted subset can run. The basic captureDom command does not enable TIA.

  1. Instrument the application under test. Configure and attach the Parasoft coverage agent to the AUT. TIA in the 2026.1 documentation requires Java 17 or 21.
  2. Collect test-linked coverage. Run the Selenium tests so coverage can be associated with test cases. Define includes and excludes to focus on application source. Parasoft warns that instrumenting every class can take too long.
  3. Create a baseline. Process collected coverage with jtestcov to create the baseline report required by the workflow.
  4. Run impacted tests for the new application. Deploy the changed application and use the Selenic Maven plug-in with the baseline and the new application binaries to select affected tests.

For multi-session coverage, enable the mode in the coverage agent and identify the test user or process with coverageAgentUserID. Parasoft’s workflow also describes starting the SOAtest Web Proxy for full test runs in that mode. Configure HTTPS for the coverage agent with a keystore if your environment requires it. Follow the TIA documentation for the exact agent properties, baseline commands, and Maven goal parameters.

7. Optional: add Applitools visual checkpoints

Selenic can integrate with Applitools for visual checkpoints, but Applitools is not required for ordinary Selenic execution. The documented integration can capture checkpoints before Selenium navigation actions, before clicks, and at the end of each test.

  • Put the required Applitools JAR files on the test project classpath.
  • Provide APPLITOOLS_API_KEY to the CI process or pass it as a Java system property.
  • Enable the agent option applitools=true and supply applitoolsApplicationName.
  • Review results in the Applitools web application and Selenic HTML report.

Consult Parasoft’s Applitools integration instructions for the option syntax for your release. Add visual checks when pixel or visual-layout differences are part of the test’s acceptance criteria; keep functional assertions for behavior and data.

8. Optional: create API tests during UI runs

Selenic can create API tests with Parasoft SOAtest during UI test execution when createApiTests=true is configured. This workflow has additional components and constraints, so it is not part of the minimum integration.

  • A SOAtest server and Parasoft Web Proxy must be running.
  • SOAtest Server 2022.2 or later is required for this capability.
  • Run sequentially. In concurrent runs, creation is limited to one scenario at a time.
  • API-test creation is not supported with Apple Safari.

Parasoft Recorder, included as a Chrome extension with Selenic, records UI actions that can be used to create Selenium tests and JUnit projects. Recorder installation also installs the SOAtest Web Proxy, which is needed for certain API-test and multi-session coverage workflows. See the release documentation before combining these components.

9. Optional: use the IDE plug-in

You do not need an IDE plug-in for the command-line integration. The IDE plug-in can import recommendations, create Selenium tests from recorded actions, and update test code. Installation differs between Eclipse and IntelliJ. Parasoft currently instructs users to deploy a separate IDE instance for Selenic because Selenic cannot run in the same IDE instance as other Parasoft tools.

10. Troubleshoot common integration problems

Symptom Likely cause What to check or do
No Selenic execution data appears The agent argument did not reach the test JVM, the JAR path is wrong, or tests ran in another process. Check the exact command and test-plugin configuration; use an absolute JAR path; confirm the forked test JVM receives -javaagent.
Maven runs tests, but recommendations are absent No successful instrumented test run exists, or DOM capture was not enabled. Get one test to pass with the agent attached, set captureDom=true, then run the analyzer on that run’s recorded data.
Existing test JVM settings disappear A command-line -DargLine replaced the project’s configured value. Merge the existing flags and the Selenic agent into one effective argument string; inspect the effective Surefire/Failsafe configuration.
Agent starts but the test run fails early Incompatible Java, Selenium, framework, browser, or WebDriver version, or invalid agent-option syntax. Compare every component with the requirements for the exact Selenic release and use that release’s command-line option syntax.
Healing does not change a broken locator DOM capture is off, there is no successful historical run, or the runtime option was not passed to the test JVM. Run a successful baseline with captureDom=true; verify selfHealing=true reaches the same JVM; inspect the report before relying on healing.
Wait-related failures remain Wait-condition healing may not be enabled, or the failure reflects a real application issue rather than an insufficient wait. Check the healing options and report. Keep explicit waits and assertions where they express required behavior.
TIA selects no tests or too many tests Coverage was not linked to test cases, scope is wrong, the baseline is missing or mismatched, or the wrong application binaries were supplied. Validate the coverage agent, includes/excludes, baseline creation, and changed application inputs in the TIA workflow.
Applitools checkpoints are missing Applitools JARs are absent from the classpath, the API key is unavailable to CI, or required agent settings are missing. Check classpath and secret injection, and set applitools=true with applitoolsApplicationName.
API tests are not created SOAtest or the Web Proxy is not running, execution is concurrent, or the browser is unsupported. Start the required services, use sequential execution, check the SOAtest server version, and do not use Safari for this workflow.

11. Reliability, performance, and cost considerations

  • Keep a known-good baseline. Start with agent capture and analysis before enabling runtime healing. Review recommendations as code changes so the test suite continues to check the intended product behavior.
  • Use explicit compatibility checks. Pin the Selenic release and validate Java, framework, browser, and WebDriver compatibility when upgrading. The requirements table above is specific to 2026.1.
  • Scope coverage for TIA. Instrument relevant application code rather than every class, and treat coverage collection, baseline generation, and impacted-test execution as separate pipeline stages.
  • Plan for agent data and artifacts. Keep execution data and reports associated with a build/session so analysis can be repeated and diagnosed. Follow your organization’s retention and access policies.
  • Budget for optional components. TIA requires coverage instrumentation and processing; visual checkpoints require Applitools configuration; API-test generation needs SOAtest and the Web Proxy. These are distinct workflows with their own setup and operational costs.
  • Check Selenic licensing with Parasoft. The research sources do not provide a license price, so confirm current terms directly with Parasoft.

12. ScreenshotNeo: capture a page without setting up a browser

Selenic integrates with your automated Selenium tests for test analysis and related workflows. If you separately need a website screenshot in a script, report, or AI-agent workflow, ScreenshotNeo is a website screenshot API and MCP server. A single GET request can return PNG, JPEG, WebP, or PDF. It complements a test suite; it does not replace Selenic or Selenium assertions.

Or skip the browser setup:

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);

See the ScreenshotNeo API documentation for request options. Before capture, it accepts cookie or consent banners and removes more than 60 known consent platforms, newsletter popups, and chat widgets; each step can be turned off. Bot checks, blank pages, failed loads, timeouts, and cache hits are not billed, and response headers identify the page verdict and billing status. Its MCP server lets AI agents use screenshot and page-information tools. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 screenshots.

Sign up free for 1,000 screenshots a month, with no card required.

Frequently asked questions

Does Selenic replace Selenium?

No. It adds execution capture, analysis, recommendations, and optional workflows to Java Selenium tests.

Can I use Selenic from CI without an IDE?

Yes. The command-line agent and analyzer workflow does not require the IDE plug-in.

Do I need Applitools for Selenic?

No. Applitools is an optional visual-validation integration.

Does enabling self-healing prove the application is correct?

No. Healing can attempt to adjust locators or waits; keep assertions that verify the behavior your tests are meant to protect.

Can I enable TIA with only the Java agent on my Selenium tests?

No. TIA also requires application coverage instrumentation, test-linked coverage collection, and a processed baseline.