Healenium

ЁЯФ╣ 1. What is Healenium? / Healenium рднрдиреЗрдХреЛ рдХреЗ рд╣реЛ?

Healenium рдПрдЙрдЯрд╛ open-source AI-based tool рд╣реЛ рдЬреБрди Selenium WebDriver рд╕рдБрдЧ integrate рдЧрд░реЗрд░ flaky test cases рд▓рд╛рдИ automatically recover рдЧрд░реНрдЫред

ЁЯСЙ рдпреЛ tool рд▓реЗ browser testing рдорд╛ failure рдЖрдЙрдиреЗ locator рд╣рд░реВрд▓рд╛рдИ self-heal рдЧрд░реНрдиреЗ рдХрд╛рдо рдЧрд░реНрдЫ тАУ рдЬрд╕рд▓реЗ рдЧрд░реНрджрд╛ рддрдкрд╛рдИрдВрд▓реЗ рдмрд╛рд░рдореНрдмрд╛рд░ XPath/CSS update рдЧрд░реНрдиреБрдкрд░реНрдиреЗ рд╕рдорд╕реНрдпрд╛ рд╣рдЯреНрдЫред

ЁЯФ╕ In short, Healenium helps testers handle changing UI elements in automation without breaking their test scripts.


ЁЯОп Key Concept:

  • When your automation test fails due to broken locators, Healenium will try to find the correct element using historical data and DOM similarity тАФ рдЕрдирд┐ test рд▓рд╛рдИ рдкрд╛рд╕ рдЧрд░рд╛рдЙрдБрдЫред

Example Use Case:

java

CopyEdit

@BeforeMethod

public void setUp() {

    WebDriver driver = new HealingDriver(chromeDriver);

}

рдпреЛ example рдорд╛ HealingDriver рд▓реЗ normal WebDriver рдХреЛ рдХрд╛рдо inherit рдЧрд░реЗрд░ self-healing logic use рдЧрд░реНрдЫред

ЁЯФ╣ 2. Why Use Healenium? / рдХрд┐рди Healenium рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ?

Automation testing рдорд╛ рд╕рдмреИрднрдиреНрджрд╛ common рд╕рдорд╕реНрдпрд╛ рд╣реЛ flaky test cases тАФ рдЬреБрди рд╕рдордп-рд╕рдордпрдорд╛ fail рд╣реБрдиреНрдЫрдиреН even though the functionality is correct.

Healenium рд▓реЗ рдпреА problem рд▓рд╛рдИ smart рддрд░реАрдХрд╛рд▓реЗ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдЫред


тЬЕ рдкреНрд░рдореБрдЦ рдХрд╛рд░рдгрд╣рд░реВ (Top Reasons to Use Healenium)

1. ЁЯФз Self-Healing Locators

ЁЯСЙ рддрдкрд╛рдИрдВрдХреЛ XPath рдпрд╛ CSS selector рдкрд░рд┐рд╡рд░реНрддрди рднрдП рдкрдирд┐ Healenium рд▓реЗ рдкреБрд░рд╛рдиреЛ DOM structure рдХреЛ рдЖрдзрд╛рд░рдорд╛ рд╕рд╣реА element рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрдЫ рд░ test pass рдЧрд░рд╛рдЙрдБрдЫред

2. ЁЯза AI-Powered Healing

ЁЯСЙ Healenium рд▓реЗ test run рдХреЛ рдХреНрд░рдордорд╛ browser рдХреЛ DOM structure compare рдЧрд░реЗрд░ machine learning рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫред

3. тП▒я╕П Time Saving

ЁЯСЙ Manual locator fixing рдЧрд░реНрдиреБрдкрд░реНрдиреЗ рд╕рдордп рдмрдЪрдд рд╣реБрдиреНрдЫред Tester рд▓реЗ рдмрд╛рд░рдореНрдмрд╛рд░ code update рдЧрд░реНрдиреБ рдкрд░реНрджреИрдиред

4. ЁЯзк Increased Test Reliability

ЁЯСЙ Flaky tests рд╣рдЯрд╛рдПрд░ continuous integration (CI) рдорд╛ confident test results рдкрд╛рдЙрди рд╕рдХрд┐рдиреНрдЫред

5. ЁЯУИ Better Test Maintenance

ЁЯСЙ Large-scale UI testing framework рд╣рд░реВ maintain рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рд╣реБрдиреНрдЫ тАФ especially рдЬрдм page structure frequently рдмрджрд▓рд┐рдиреНрдЫред


ЁЯФН Real-world Scenario:

ЁЯЪл Without Healenium:

java

CopyEdit

driver.findElement(By.xpath(“//button[@id=’submit’]”)).click();  // Fails if ID changes

тЬЕ With Healenium:

java

CopyEdit

WebDriver driver = new HealingDriver(chromeDriver);

driver.findElement(By.xpath(“//button[@id=’submit’]”)).click();  // Auto-heals even if locator changes

Healenium рд▓реЗ fallback mechanism рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкреБрд░рд╛рдирд╛ рд░ рдирдпрд╛рдБ structure compare рдЧрд░реНрдЫ рд░ best-matching element find рдЧрд░реНрдЫред

ЁЯФ╣ 3. How Healenium Works / Healenium рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдЫ?

Healenium рд▓реЗ Selenium WebDriver рдХреЛ рд╕рд╛рде integrate рднрдПрд░ test run рдХреЛ рд╕рдордп DOM structure monitor рдЧрд░реНрдЫред рдЬрдм рдХреБрдиреИ locator fail рд╣реБрдиреНрдЫ, рддрдм рдпрд╕рд▓реЗ AI-based fallback mechanism рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ element locate рдЧрд░реНрдЫред


ЁЯзн Step-by-Step Workflow (Healenium рдХрд╛рд░реНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛)

ЁЯеЗ Step 1: Test Execution Starts

  • Normal Selenium command рдЬрд╕реНрддреИ findElement() execute рд╣реБрдиреНрдЫред
  • Example:

java

CopyEdit

driver.findElement(By.xpath(“//input[@id=’username’]”));

ЁЯеИ Step 2: Locator Failure Detection

  • рдпрджрд┐ XPath/CSS locator browser рдорд╛ рднреЗрдЯрд┐рдПрди рднрдиреЗ тЖТ Healenium triggers healing mode.

ЁЯеЙ Step 3: Historical Snapshot Comparison

  • Healenium рд▓реЗ рдкрд╣рд┐рд▓реЗ cache рдЧрд░рд┐рдПрдХреЛ DOM snapshot use рдЧрд░реНрдЫред
  • рдкреБрд░рд╛рдиреЛ рд░ рд╣рд╛рд▓рдХреЛ DOM structure рд▓рд╛рдИ compare рдЧрд░реНрдЫред

ЁЯПЕ Step 4: Best Match Locator рдЦреЛрдЬреНрдиреЗ

  • AI algorithm рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ similar element рдЦреЛрдЬрд┐рдиреНрдЫ (attribute, position, tag, etc.)ред

ЁЯОп Step 5: Test Continues with Healed Locator

  • Healenium рд▓реЗ auto-correct рдЧрд░рд┐рдПрдХреЛ locator рдмрд╛рдЯ action retry рдЧрд░реНрдЫред
  • Test case fail рдирд╣реБрдБрдиреЗ рддрд░рд┐рдХрд╛рд▓реЗ run рд╣реБрдиреНрдЫред

ЁЯФД Visual Flow (English Summary)

plaintext

CopyEdit

Test Starts

     тЖУ

Locator Breaks?

     тЖУ Yes

Healenium Checks DOM Snapshot

     тЖУ

Finds Best-Match Element

     тЖУ

Executes Test тЖТ Passes with Healed Locator


ЁЯФН Bonus: What You Need to Use Healenium

  • тЬЕ Java + Selenium WebDriver
  • тЬЕ Maven Dependency:

xml

CopyEdit

<dependency>

  <groupId>com.epam.healenium</groupId>

  <artifactId>healenium-web</artifactId>

  <version>3.3.1</version>

</dependency>

  • тЬЕ Replace WebDriver with HealingDriver in your test setup.

ЁЯФ╣ 4. Installation & Setup Guide / Healenium Installation рд░ Setup рдХрд╕рд░реА рдЧрд░реНрдиреЗ?

Healenium рд▓рд╛рдИ Selenium Java framework рдорд╛ integrate рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рдЫред рдпрд╣рд╛рдБ step-by-step рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджрд┐рдЗрдПрдХреЛ рдЫ рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╕реБрд░реБ рдЧрд░реНрди рдорджреНрджрдд рдЧрд░реНрдЫред


ЁЯз▒ Prerequisites / рдЖрд╡рд╢реНрдпрдХ рддрдпрд╛рд░реАрд╣рд░реВ

  • тЬЕ Java 8+ installed
  • тЬЕ Maven project structure
  • тЬЕ Selenium WebDriver integrated
  • тЬЕ ChromeDriver or compatible browser driver

ЁЯЫа Step-by-Step Installation Process

тЬЕ Step 1: Add Healenium Dependency to pom.xml

xml

CopyEdit

<dependency>

  <groupId>com.epam.healenium</groupId>

  <artifactId>healenium-web</artifactId>

  <version>3.3.1</version>

</dependency>

тЬЕ Step 2: Add Selenium Dependency (if not already added)

xml

CopyEdit

<dependency>

  <groupId>org.seleniumhq.selenium</groupId>

  <artifactId>selenium-java</artifactId>

  <version>4.17.0</version>

</dependency>

тЬЕ Step 3: Update Your WebDriver Setup

ЁЯСЙ Replace WebDriver with HealingDriver:

java

CopyEdit

import com.epam.healenium.SelfHealingDriver;

import org.openqa.selenium.chrome.ChromeDriver;

WebDriver original = new ChromeDriver();

SelfHealingDriver driver = SelfHealingDriver.create(original);

рдЕрдм рддрдкрд╛рдИрдВрд▓реЗ driver.findElement() рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ Healenium рд▓реЗ broken locators рд▓рд╛рдИ auto-recover рдЧрд░реНрдЫред


ЁЯУВ Optional: Setup for Healenium Backend (Advanced)

If you want to view healing history and snapshots:

  • Run the Healenium Backend via Docker:

bash

CopyEdit

docker-compose -f docker-compose.yml up

  • This will start:
    • Healenium service
    • MongoDB
    • UI Dashboard (usually on http://localhost:7878)

ЁЯзк Ready to Run Test Example

java

CopyEdit

driver.findElement(By.xpath(“//input[@id=’email’]”)).sendKeys(“lok@example.com”);

XPath break рднрдП рдкрдирд┐ Healenium рд▓реЗ рдпреЛ element locate рдЧрд░реЗрд░ script run рдЬрд╛рд░реА рд░рд╛рдЦреНрдЫред

ЁЯФ╣ 5. Healenium vs Without Healenium (Comparison Table)

Healenium рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБ рдЕрдШрд┐ рд░ рдкрдЫрд┐рдХреЛ рдЕрдиреНрддрд░ тАУ рдпреЛ рддрд╛рд▓рд┐рдХрд╛ (table) рд▓реЗ self-healing feature рдХреЛ practical рдкреНрд░рднрд╛рд╡ рджреЗрдЦрд╛рдЙрдБрдЫред


ЁЯУК Comparison Table (Nepali-English Mix)

Feature/ScenarioWithout Healenium тЭМWith Healenium тЬЕ
Locator break рд╣реБрдБрджрд╛ test behaviorTest fails immediatelyTest retries with healed locator
Manual XPath update required?рд╣рд░реЗрдХ UI change рдкрдЫрд┐ update рдЧрд░реНрдиреБрдкрд░реНрдЫHealenium рд▓реЗ auto-locate рдЧрд░реНрдЫ
Test stability in CI/CDFlaky & unpredictableReliable & consistent
Maintenance timeрдзреЗрд░реИ рд╕рдордп рд▓рд╛рдЧреНрдиреЗрдзреЗрд░реИ рдмрдЪрдд рд╣реБрдиреЗ
Suitable for dynamic UIsNoYes
Error message visibilityStacktrace onlyHealing info + fallback locator log
Learning curveEasy (Selenium knowledge only)Moderate (extra setup + agent config)
Backend healing dashboardрдЫреИрдирдЫ (with Docker setup)
Ideal for large-scale test frameworksтЭМ Manual effort grows with scaleтЬЕ Easily scalable with locator cache
Example locator“//button[@id=’submit’]” failsHealenium finds similar button element

ЁЯза Summary (рдиреЗрдкрд╛рд▓реАрдорд╛ рд╕рдВрдХреНрд╖реЗрдк):

Healenium рд▓реЗ flaky locator рд╣рд░реВрдХреЛ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдЧрд░реЗрд░ test framework рд▓рд╛рдИ smart рдмрдирд╛рдЙрдБрдЫред Selenium рдорд╛рддреНрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ рдЬреБрди locator change рднрдпреЛ рднрдиреЗ test рдлреЗрд▓ рд╣реБрдиреНрдЫ, рддрд░ Healenium рд▓реЗ рддреНрдпреЛ locator рдХреЛ рдЖрдзрд╛рд░рдорд╛ similar element рдЦреЛрдЬреЗрд░ test run рдЬрд╛рд░реА рд░рд╛рдЦреНрджрд┐рдиреНрдЫред

ЁЯФ╣ 6. Real-World Example (with GitHub Link)

рдкреНрд░рдпреЛрдЧрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЙрджрд╛рд╣рд░рдг (Selenium + Healenium Java Project)


ЁЯзк Use Case: Login Page Test with Broken XPath

ЁЯФ╕ Scenario:

You have a login test that uses this XPath:

java

CopyEdit

driver.findElement(By.xpath(“//input[@id=’username’]”)).sendKeys(“lok123”);

  • рдЕрдм рдпрджрд┐ frontend developer рд▓реЗ id=”username” рд▓рд╛рдИ id=”user_id” рдорд╛ change рдЧрд░реНтАНрдпреЛ рднрдиреЗ:
    • ЁЯФ╗ Without Healenium тЖТ Test fails with NoSuchElementException.
    • тЬЕ With Healenium тЖТ Automatically finds similar input field and test passes.

ЁЯУВ GitHub Example Project Structure:

plaintext

CopyEdit

/selenium-healenium-demo

тФВ

тФЬтФАтФА src/test/java/

тФВ   тФЬтФАтФА tests/

тФВ   тФВ   тФФтФАтФА LoginTest.java

тФВ   тФЬтФАтФА base/

тФВ   тФВ   тФФтФАтФА BaseTest.java

тФВ

тФЬтФАтФА pom.xml

тФЬтФАтФА docker-compose.yml      (for backend UI)

тФФтФАтФА README.md


ЁЯФЧ ЁЯФН Sample Project GitHub Link

You can fork or clone this repo to start testing:

bash

CopyEdit

git clone https://github.com/healenium/healenium-web.git

Note: Use Docker to enable healing dashboard and logs:

bash

CopyEdit

docker-compose up -d


ЁЯФ╣ 7. Healenium FAQs for Testers (Frequently Asked Questions)

тЭУ Healenium рдХреБрди test framework рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдЫ?

тЬЕ Selenium Java (with JUnit/TestNG)


тЭУ Healenium Python рд╡рд╛ JavaScript рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдЫ?

тЭМ рд╣рд╛рд▓рдХреЛ version рдХреЗрд╡рд▓ Java + Selenium projects рд╕рдБрдЧ compatible рдЫред


тЭУ WebDriverManager рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ?

тЬЕ рд╣реЛ, ChromeDriver рд╡рд╛ FirefoxDriver manage рдЧрд░реНрди WebDriverManager рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред


тЭУ рдХреЗ Healenium рд▓реЗ REST API testing рдорд╛ рдХрд╛рдо рдЧрд░реНрдЫ?

тЭМ рд╣реЛрдЗрди, Healenium рдХреЗрд╡рд▓ UI (DOM-based) locator issues рдХреЛ рд▓рд╛рдЧрд┐ рд╣реЛ, API testing рдорд╛ use рд╣реБрдБрджреИрдиред


тЭУ рдХреНрдпрд╛ CI/CD pipeline рдорд╛ integrate рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ?

тЬЕ рд╣реЛ, Jenkins, GitHub Actions, GitLab CI рдЬрд╕реНрддрд╛ tools рд╕рдБрдЧ рд╕рд╣рдЬреИ integrate рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред


тЭУ рдХреНрдпрд╛ backend dashboard рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣реЛ?

тЭМ рдЖрд╡рд╢реНрдпрдХ рдЫреИрди, рддрд░ optional dashboard рд▓реЗ healing history рд╣реЗрд░реНрди рд╕рдЬрд┐рд▓реЛ рдмрдирд╛рдЙрдБрдЫред

Scroll to Top