Menu

Framework Features and Evolution

Relevant source files

Purpose and Scope

This page documents the comprehensive feature set of the AutomationFrameworkSelenium framework and chronicles its development history from version 1.0.0 (April 2022) to the current version 2.6.5 (October 2025). It provides a historical perspective on feature additions, dependency updates, and architectural improvements. For framework architecture and design patterns, see Core Architecture. For configuration options that control these features, see Configuration System.


Current Framework Feature Set

The framework provides a comprehensive suite of capabilities organized into functional categories. The table below maps high-level features to their implementing code entities:

Feature CategoryCapabilitiesPrimary Code Entities
Test ExecutionParallel test execution, TestNG integration, test lifecycle managementBaseTest, TestListener, suite XMLs in src/test/resources/suites/
Browser ManagementMulti-browser support (Chrome, Edge, Firefox, Safari), headless mode, remote executionBrowserFactory, DriverManager, TargetFactory
WebUI Keywords100+ reusable automation keywords, smart waits, element interactionsWebUI class, keywords submodule
ReportingDual reporting (ExtentReports HTML/PDF, Allure), screenshot capture, video recordingExtentReportManager, AllureManager, CaptureHelpers, ScreenRecoderHelpers
Data-Driven TestingExcel data reading, JSON parsing, CSV support, fake data generationExcelHelpers, JsonUtils, DataFakerUtils, DataProviderManager
ConfigurationProperties-based config, framework constants, environment-specific settingsconfig.properties, FrameworkConstants, PropertiesHelpers
NotificationsTelegram Bot integration, email reports with attachmentsTelegramManager, EmailSendUtils, EmailConfig
LoggingLog4j2 integration, file rotation, console outputLogUtils, src/main/resources/log4j2.properties
CI/CDGitHub Actions workflow, Docker Selenium Grid, artifact management.github/workflows/maven.yml docker-compose.yml
UtilitiesFile operations, ZIP compression, string manipulation, language utilitiesFileHelpers, ZipUtils, LanguageUtils, SystemHelpers
Wait StrategiesSmart waits, page load detection, implicit/explicit waits, custom timeoutsWebUI wait methods, WAIT_PAGE_LOADED, WAIT_IMPLICIT, WAIT_EXPLICIT in config
AuthenticationSelenium 4 authentication, CDP-based network manipulationWebUI.Authentication(), CDP devtools integration
Retry MechanismAutomatic retry of failed testsIAnnotationTransformer, IRetryAnalyzer implementations

Sources: README.md9-27 CHANGELOG.txt336-344


Framework Features to Code Entity Mapping

The diagram below maps framework capabilities to specific code entities, bridging conceptual features to implementation:

Sources: README.md9-27 CHANGELOG.txt1-345 src/main/java/anhtester/com/keywords/WebUI.java src/main/java/anhtester/com/driver/BrowserFactory.java src/main/java/anhtester/com/reports/


Version Evolution Timeline

The framework has undergone continuous development with 30+ versions released between April 2022 and October 2025. The timeline below highlights major milestones:

Sources: CHANGELOG.txt1-345


Selenium and CDP Version Support

The framework maintains active alignment with Selenium WebDriver releases and Chromium DevTools Protocol (CDP) versions. This table tracks the progression:

Framework VersionRelease DateSelenium VersionCDP VersionChrome VersionKey Changes
v1.0.0Apr 5, 20224.x (early)N/AN/AInitial framework release
v1.7.0Aug 11, 20224.4.0104104CDP support introduced
v1.9.0Nov 8, 20224.6.0N/AN/ASelenium Manager adoption
v1.9.3Jan 28, 20234.8.0109109CDP v109 devtools
v1.9.4May 25, 20234.9.1N/AN/ADataFaker added
v1.9.6Aug 1, 20234.11.0115115WebDriverManager removed
v2.0.0Sep 27, 20234.13.0117117Major version milestone
v2.0.1Oct 12, 20234.14.0118118selenium-http-jdk-client removed
v2.1.0Dec 10, 20234.16.1120120CDP v120 devtools
v2.2.0Jan 26, 20244.17.0121121CDP v121 support
v2.2.2Apr 2, 20244.19.1123123CDP v123 support
v2.2.3Apr 26, 20244.20.0124124CDP Network updates
v2.3.0May 17, 20244.21.0125125CDP v125 Network
v2.4.1Jun 24, 20244.22.0126126CDP v126 in WebUI
v2.4.2Jul 26, 20244.23.0127127CDP v127 support
v2.4.3Aug 14, 20244.23.1N/AN/ALibrary upgrades
v2.4.4Sep 5, 20244.24.0128128CDP v128 support
v2.4.6Oct 29, 20244.25.0N/AN/AHeadless Linux fix
v2.4.7Nov 1, 20244.26.0130130CDP v130 support
v2.4.8Dec 17, 20244.27.0131131waitForElementVisible edit
v2.4.9Jan 25, 20254.28.1132132CDP v132 support
v2.5.0Feb 23, 20254.29.0133133Package restructure
v2.6.0May 5, 20254.32.0136136Helper class updates
v2.6.1Jun 13, 20254.33.0137137CDP v137 support
v2.6.2Jul 19, 20254.34.0138138CDP v138 support
v2.6.5Oct 22, 20254.37.0141141Latest WebUI keywords

Sources: CHANGELOG.txt1-345


Major Architectural Milestones

Phase 1: Foundation (v1.0.0 - v1.5.0, Apr-Jun 2022)

Initial Release (v1.0.0 - April 5, 2022)

The foundation release established core framework architecture:

  • TestNG-based parallel test execution
  • ExtentReports and Allure dual reporting
  • Email notifications with HTML attachments
  • Log4j2 file logging
  • Video recording and screenshot capture
  • Excel data reading with field mapping
  • WebUI keyword library for common functions

Key Addition: Data-Driven Enhancements (v1.2.0 - April 21, 2022)

  • Soft assertion support via WebUI.softAssert()
  • FailureHandling enum for flow control: STOP_ON_FAILURE, CONTINUE_ON_FAILURE, OPTIONAL
  • Excel data reading with Hashtable support
  • JSON file support through JsonUtils
  • Enhanced verification keywords: verifyElementTextEquals(), etc.

Sources: CHANGELOG.txt333-345 CHANGELOG.txt312-322

Phase 2: Advanced Features (v1.6.0 - v1.8.0, Jul-Sep 2022)

Smart Wait System (v1.6.0 - July 25, 2022)

  • Complete suite of verification functions in WebUI
  • Smart wait configuration in config.properties
  • Video recording toggle: VIDEO_RECORD
  • ZIP folder compression: ZIP_FOLDER
  • Internet Explorer browser removed from support matrix
  • Selenium 4.3.0 and WebDriverManager 5.2.1 integration

Communication Channels (v1.8.0 - September 19, 2022)

  • Telegram Bot integration via TelegramManager.sendReportPath()
  • Download file verification: WebUI.verifyDownloadFile()
  • HTML5 drag-and-drop: WebUI.dragAndDropHTML5(fromElement, toElement)
  • Table data checking optimization
  • Website demo migration

Sources: CHANGELOG.txt262-270 CHANGELOG.txt244-253

Phase 3: Selenium Manager Era (v1.9.0 - v1.9.9, Nov 2022-Sep 2023)

Selenium Manager Adoption (v1.9.0 - November 8, 2022)

Critical architectural change eliminating external driver management:

  • Selenium 4.6.0 with built-in Selenium Manager
  • Automatic binary browser version download
  • WebDriverManager removed from BrowserFactory
  • Selenium Grid configuration updates
  • README documentation refresh

Reporting Enhancement (v1.9.1 - November 25, 2022)

  • PDF report screenshot issue fixed
  • Base64 screenshots converted to file attachments
  • ExtentReportManager.addScreenShot() method updated
  • CaptureHelper.getScreenshot() function added

CDP and Listener Improvements (v1.9.3 - January 28, 2023)

  • Selenium 4.8.0, TestNG 7.7.1 upgrades
  • CDP Chromium v109 support with detailed logging
  • AllureListener implementing io.qameta.allure.listener.TestLifecycleListener
  • Fixed Allure attachment issue with TestNG > 7.4.0
  • Multiple properties file reading capability

DataFaker and Retry Logic (v1.9.4 - May 25, 2023)

  • Selenium 4.9.1 upgrade
  • DataFaker library integration for synthetic test data
  • Retry failed test implementation via IAnnotationTransformer
  • CMS system sample test cases added
  • Headless mode execution fixes

Complete WebDriverManager Removal (v1.9.6 - August 1, 2023)

  • Selenium 4.11.0, Chrome 115 support
  • WebDriverManager completely eliminated from BrowserFactory
  • Full reliance on Selenium Manager for driver binaries

Package Refactoring (v1.9.8 - September 5, 2023)

  • Package name changed from anhtester.com to com.anhtester
  • Selenium 4.12.1 support

Sources: CHANGELOG.txt220-229 CHANGELOG.txt212-219 CHANGELOG.txt195-204 CHANGELOG.txt185-194 CHANGELOG.txt170-176 CHANGELOG.txt158-163

Phase 4: Selenium 4 Maturity (v2.0.0 - v2.4.x, Sep 2023-Oct 2024)

Major Version 2.0.0 (September 27, 2023)

  • Selenium 4.13.0, Chrome 117 support
  • Comprehensive Javadoc for all WebUI keyword functions
  • All dependencies upgraded to latest versions in pom.xml

CDP Version Tracking (v2.0.1 - v2.4.8)

The framework implemented aggressive tracking of CDP versions to maintain Chrome compatibility:

  • v2.0.1 (Oct 2023): CDP 118, removed selenium-http-jdk-client
  • v2.1.0 (Dec 2023): CDP 120, devtools v120 in WebUI
  • v2.2.0 (Jan 2024): CDP 121
  • v2.2.2 (Apr 2024): CDP 123
  • v2.2.3 (Apr 2024): CDP 124, CDP Network updates
  • v2.3.0 (May 2024): CDP 125, CDP Network in WebUI
  • v2.4.1 (Jun 2024): CDP 126
  • v2.4.2 (Jul 2024): CDP 127, Chromium support
  • v2.4.4 (Sep 2024): CDP 128
  • v2.4.7 (Nov 2024): CDP 130
  • v2.4.8 (Dec 2024): CDP 131, waitForElementVisible edit

Screenshot Strategy Enhancement (v2.4.0 - May 22, 2024)

  • Screenshot for all steps: SCREENSHOT_ALL_STEPS configuration
  • config.properties enhancements

Method Optimization (v2.4.5 - September 7, 2024)

  • WebUI keyword method optimization
  • QR Code handling removed (google.zxing library)

Platform Stability (v2.4.6 - October 29, 2024)

  • Selenium 4.25.0 upgrade
  • Jenkins Server Linux headless mode issue fixed
  • All dependencies updated

Sources: CHANGELOG.txt142-149 CHANGELOG.txt135-141 CHANGELOG.txt123-127 CHANGELOG.txt114-120 CHANGELOG.txt87-100 CHANGELOG.txt55-66 CHANGELOG.txt48-54

Phase 5: Current Era (v2.5.0 - v2.6.5, Feb-Oct 2025)

Package Reorganization (v2.5.0 - February 23, 2025)

  • Selenium 4.29.0, CDP 133 support
  • Package name changed to com.anhtester.reports in src/main/java/
  • Structural improvements for maintainability

Helper Class Modernization (v2.6.0 - May 5, 2025)

  • Selenium 4.32.0, CDP 136 support
  • All libraries upgraded to latest versions
  • FileHelpers class updated
  • SystemHelpers class updated
  • ExcelHelpers class updated

Latest Stable Version (v2.6.5 - October 22, 2025)

  • Selenium 4.37.0 with CDP 141 support
  • Latest WebUI keyword updates
  • Current production-ready release

Sources: CHANGELOG.txt1-25


Feature Category Timeline

The diagram below shows when major feature categories were introduced and enhanced:

Sources: CHANGELOG.txt1-345


Dependency Evolution

Core Testing Dependencies

DependencyInitial VersionCurrent VersionFirst AddedPurpose
Selenium WebDriver4.x (early)4.37.0v1.0.0Browser automation
TestNG7.x (early)7.11.0+v1.0.0Test framework
WebDriverManager5.xRemovedv1.0.0 → v1.9.6Driver management (deprecated)

Reporting Dependencies

DependencyInitial VersionCurrent VersionFirst AddedPurpose
ExtentReports5.x5.1.2+v1.0.0HTML/PDF reports
Allure TestNG2.x2.29.1+v1.0.0Interactive reports

Data Processing Dependencies

DependencyInitial VersionCurrent VersionFirst AddedPurpose
Apache POI5.x5.4.1+v1.0.0Excel file operations
DataFakerN/A2.4.4+v1.9.4Synthetic test data

Communication Dependencies

DependencyInitial VersionCurrent VersionFirst AddedPurpose
Telegram Bot APIN/A8.3.0+v1.8.0Telegram notifications
JavaMail1.6.21.6.2v1.0.0Email reports

Logging Dependencies

DependencyInitial VersionCurrent VersionFirst AddedPurpose
Log4j22.x2.24.3+v1.0.0Application logging

Sources: CHANGELOG.txt1-345 README.md29-44


Configuration Feature Evolution

The config.properties file has grown significantly to support new features:

Screenshot Configuration History

VersionConfiguration AddedPurpose
v1.0.0screenshot_failed_stepsCapture failed test screenshots
v1.4.0screenshot_all_stepsCapture every WebUI action
v2.4.0Enhanced screenshot policiesSCREENSHOT_PASSED_TCS, SCREENSHOT_SKIPPED_TCS

Wait Configuration History

VersionConfiguration AddedPurpose
v1.0.0Basic wait timeoutsImplicit/explicit waits
v1.4.0WAIT_SLEEP_STEPPause between actions
v1.6.0Smart wait systemsmartWait configuration
v2.4.8waitForElementVisible optimizationImproved visibility detection

Execution Configuration History

VersionConfiguration AddedPurpose
v1.0.0BROWSERBrowser selection
v1.6.0VIDEO_RECORDVideo capture toggle
v1.6.0ZIP_FOLDERReport compression
v1.8.0SEND_REPORT_TO_TELEGRAMTelegram notifications
v1.9.0TARGET, REMOTE_URL, REMOTE_PORTSelenium Grid support
v1.9.4Headless mode fixesLinux/Jenkins compatibility

Sources: CHANGELOG.txt262-300 src/test/resources/config/config.properties


Removed Features and Deprecations

The framework has deliberately removed certain dependencies and features:

WebDriverManager Removal Timeline

Rationale: Selenium 4.6.0+ includes built-in Selenium Manager that automatically downloads and manages driver binaries, eliminating the need for WebDriverManager.

Impact: Simplified dependency management, reduced external dependencies from pom.xml, automatic driver version compatibility.

Other Removed Features

VersionFeature RemovedRationale
v1.6.0Internet Explorer browserBrowser end-of-life
v1.7.0Object locators from properties filesMoved to Page Object Model classes
v2.0.1selenium-http-jdk-client dependencyRedundant with Selenium 4 architecture
v2.4.5QR Code handling (google.zxing)Feature optimization, limited usage

Sources: CHANGELOG.txt220-229 CHANGELOG.txt262-270 CHANGELOG.txt254-261 CHANGELOG.txt135-141 CHANGELOG.txt55-60


Summary: Framework Evolution Metrics

MetricValue
Total Versions Released30+
Development TimespanApril 2022 - October 2025 (3.5 years)
Selenium Versions Supported4.4.0 → 4.37.0 (33 version updates)
CDP Versions Tracked104 → 141 (24 CDP versions)
Major Dependencies10+ (Selenium, TestNG, ExtentReports, Allure, POI, DataFaker, Telegram, Log4j2, etc.)
Feature Categories10 (Execution, Browser, Keywords, Reporting, Data, Config, Notifications, Logging, CI/CD, Utilities)
Breaking Changes3 (WebDriverManager removal, package refactoring, Page Object Model migration)
Configuration Options30+ properties in config.properties

Sources: CHANGELOG.txt1-345 README.md1-599