# eanugan/keyword-driven-framework-in-selenium-webdriver architecture

> Architecture diagram of the GitHub repository eanugan/keyword-driven-framework-in-selenium-webdriver, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/eanugan/keyword-driven-framework-in-selenium-webdriver
- Repository: https://github.com/eanugan/keyword-driven-framework-in-selenium-webdriver

## Overview

This is a small keyword-driven Selenium test runner. TestNG invokes `TestConfig`, which reads rows from an Excel workbook and dispatches browser, navigation, typing, and click actions; it also logs test outcomes to an ExtentReports HTML report. Browser interactions target the configured application. The tree and sampled Java show the main execution path; the workbook contents and report-generation internals are not inspected, so their detailed behavior is not inferred.

Main entry points: [`src/Config/TestConfig.java`](https://github.com/eanugan/keyword-driven-framework-in-selenium-webdriver/blob/master/src/Config/TestConfig.java) (Test configuration), [`src/lib/BrowserAction.java`](https://github.com/eanugan/keyword-driven-framework-in-selenium-webdriver/blob/master/src/lib/BrowserAction.java) (Browser navigation), [`src/lib/TypeEvents.java`](https://github.com/eanugan/keyword-driven-framework-in-selenium-webdriver/blob/master/src/lib/TypeEvents.java) (Text entry), [`src/lib/ClickEvents.java`](https://github.com/eanugan/keyword-driven-framework-in-selenium-webdriver/blob/master/src/lib/ClickEvents.java) (Click handling)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runner["Test orchestration"]
  node_config["Test configuration<br/>[TestConfig.java]"]
end

subgraph group_actions["Browser actions"]
  node_browseraction["Browser navigation<br/>[BrowserAction.java]"]
  node_typeevents["Text entry<br/>[TypeEvents.java]"]
  node_clickevents["Click handling<br/>[ClickEvents.java]"]
end

subgraph group_io["Test inputs and reporting"]
  node_excel["Excel data provider"]
  node_workbook["Test workbook<br/>[InputSheet.xlsx]"]
  node_report["HTML test report<br/>[login.html]"]
end

node_testng(("TestNG runner"))
node_chrome["Chrome browser"]
node_firefox["Firefox browser"]
node_webapp(("Target web app"))

node_testng -->|"invokes"| node_config
node_config -->|"creates and reads"| node_excel
node_excel -->|"loads"| node_workbook
node_config -->|"starts or quits"| node_chrome
node_config -->|"starts or quits"| node_firefox
node_config -->|"dispatches navigation"| node_browseraction
node_config -->|"dispatches typing"| node_typeevents
node_config -->|"dispatches clicks"| node_clickevents
node_browseraction -->|"navigates"| node_webapp
node_typeevents -->|"enters text"| node_webapp
node_clickevents -->|"clicks elements"| node_webapp
node_config -->|"logs and flushes"| node_report

click node_config "https://github.com/eanugan/keyword-driven-framework-in-selenium-webdriver/blob/master/src/Config/TestConfig.java"
click node_excel "https://github.com/eanugan/keyword-driven-framework-in-selenium-webdriver/blob/master/src/dataProvider/ExcelDataProvider.java"
click node_workbook "https://github.com/eanugan/keyword-driven-framework-in-selenium-webdriver/blob/master/TestCases/InputSheet.xlsx"
click node_browseraction "https://github.com/eanugan/keyword-driven-framework-in-selenium-webdriver/blob/master/src/lib/BrowserAction.java"
click node_typeevents "https://github.com/eanugan/keyword-driven-framework-in-selenium-webdriver/blob/master/src/lib/TypeEvents.java"
click node_clickevents "https://github.com/eanugan/keyword-driven-framework-in-selenium-webdriver/blob/master/src/lib/ClickEvents.java"
click node_report "https://github.com/eanugan/keyword-driven-framework-in-selenium-webdriver/blob/master/HTMLReport/login.html"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_config,node_chrome,node_firefox toneBlue
class node_browseraction,node_typeevents,node_clickevents toneAmber
class node_excel,node_workbook,node_report toneMint
class node_testng,node_webapp toneIndigo
```

## Components

### Test orchestration

- [Test configuration](https://github.com/eanugan/keyword-driven-framework-in-selenium-webdriver/blob/master/src/Config/TestConfig.java): `src/Config/TestConfig.java`

### Browser actions

- [Browser navigation](https://github.com/eanugan/keyword-driven-framework-in-selenium-webdriver/blob/master/src/lib/BrowserAction.java): `src/lib/BrowserAction.java`
- [Text entry](https://github.com/eanugan/keyword-driven-framework-in-selenium-webdriver/blob/master/src/lib/TypeEvents.java): `src/lib/TypeEvents.java`
- [Click handling](https://github.com/eanugan/keyword-driven-framework-in-selenium-webdriver/blob/master/src/lib/ClickEvents.java): `src/lib/ClickEvents.java`

### Test inputs and reporting

- [Excel data provider](https://github.com/eanugan/keyword-driven-framework-in-selenium-webdriver/blob/master/src/dataProvider/ExcelDataProvider.java): `src/dataProvider/ExcelDataProvider.java`
- [Test workbook](https://github.com/eanugan/keyword-driven-framework-in-selenium-webdriver/blob/master/TestCases/InputSheet.xlsx): `TestCases/InputSheet.xlsx`
- [HTML test report](https://github.com/eanugan/keyword-driven-framework-in-selenium-webdriver/blob/master/HTMLReport/login.html): `HTMLReport/login.html`

### Other components

- **TestNG runner**
- **Chrome browser**
- **Firefox browser**
- **Target web app**

## Connections

- TestNG runner → Test configuration: invokes
- Test configuration → Excel data provider: creates and reads
- Excel data provider → Test workbook: loads
- Test configuration → Chrome browser: starts or quits
- Test configuration → Firefox browser: starts or quits
- Test configuration → Browser navigation: dispatches navigation
- Test configuration → Text entry: dispatches typing
- Test configuration → Click handling: dispatches clicks
- Browser navigation → Target web app: navigates
- Text entry → Target web app: enters text
- Click handling → Target web app: clicks elements
- Test configuration → HTML test report: logs and flushes
