Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Selenium Java Web Automation

Automated UI testing framework built with Java + Selenium + TestNG, designed to simulate user interactions across academic services at Northeastern University.


🧠 Description

This project automates the testing of several core student-facing web features including:

  • Transcript downloads via Chrome DevTools Protocol (CDP)
  • Library dataset file downloads
  • Canvas calendar event creation
  • Library study room reservation

It follows the Page Object Model (POM) pattern, with Excel-driven configuration to separate test data and locators from test logic. It also generates HTML reports using ExtentReports and includes built-in screenshot capturing at key checkpoints.


🏷️ Badges

License Repo size Last Commit


📸 Visuals

Test Report1

Test Report2

Duo Login


⚙️ Installation

🧱 Requirements

  • Java 17+ (tested with Java 19)
  • Maven
  • Chrome (122) + matching ChromeDriver
  • IntelliJ IDEA (or any IDE with TestNG support)

📥 Setup

  1. Clone the repo:

    git clone https://github.com/IsaacTai123/selenium-java-web-automation.git
    cd selenium-java-web-automation
  2. Download Chrome for Testing (version 122) and remember the path.

    • Change the configuration in BaseTest.java to point to the downloaded ChromeDriver. Line #60, #66
  3. Gate your local chromedriver path in BaseTest.java.

  4. (Important) Update dataTable.xlsx in src/test/resources with:

    • Your login username and password
    • Your own transcript preferences, URLs, and other test data (This is required for the tests to run properly)

🚀 Usage

To run all test scenarios: right-click on the src/test/resources and choose testng.xml and select "Run".

You can also run individual test classes via TestNG in your IDE.

📝 Reports

After running the tests, an HTML report will be generated under:

test-output/ExtentReport.html

Screenshots are saved under screenshots/{TestClassName}.


📂 Project Structure

├── README.md
├── images
├── pom.xml
├── src
│   ├── main
│   │   ├── java
│   │   │   └── com
│   │   │       └── isaactai
│   │   │           └── selenium
│   │   │               ├── base
│   │   │               │   ├── BasePage.java
│   │   │               │   └── BaseTest.java
│   │   │               ├── pages
│   │   │               │   ├── AcademicCalendarPage.java
│   │   │               │   ├── CanvasPage.java
│   │   │               │   ├── MicrosoftLoginPage.java
│   │   │               │   ├── NeuLibraryBostonPage.java
│   │   │               │   ├── NeuLoginPage.java
│   │   │               │   ├── SnellLibraryPage.java
│   │   │               │   ├── StudentHubPage.java
│   │   │               │   └── TranscriptPage.java
│   │   │               └── utils
│   │   │                   ├── AssertUtil.java
│   │   │                   ├── ExcelUtil.java
│   │   │                   ├── ExtentReportManager.java
│   │   │                   ├── FileUtil.java
│   │   │                   └── ScreenshotUtil.java
│   │   └── resources
│   └── test
│       ├── java
│       │   └── com
│       │       └── isaactai
│       │           └── selenium
│       │               └── tests
│       │                   ├── AcademicCalendarTest.java
│       │                   ├── CanvasCalendarTest.java
│       │                   ├── DatasetsTest.java
│       │                   ├── LoginTest.java
│       │                   ├── ReserveStudyRoomTest.java
│       │                   ├── SampleTest.java
│       │                   └── TranscriptTest.java
│       └── resources
│           ├── dataTable.xlsx
│           ├── simplelogger.properties
│           └── testing.xml
└── test-output
    └── ExtentReport.html

20 directories, 28 files


👤 Author

Isaac Tai

  • 💻 Software Engineer

About

Automated testing scripts for web application workflows using Selenium

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages