0% found this document useful (0 votes)
48 views355 pages

Selenium Codes Compact 60pages

The document contains various Java classes demonstrating Selenium WebDriver test cases, including login automation, date picker handling, mouse hover actions, and keyboard actions. Each class includes methods annotated with TestNG's @Test for executing specific tasks like opening applications, logging in, and performing user interactions. Additionally, it showcases XML configurations for organizing test suites and classes.

Uploaded by

anurag.leo.076
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
48 views355 pages

Selenium Codes Compact 60pages

The document contains various Java classes demonstrating Selenium WebDriver test cases, including login automation, date picker handling, mouse hover actions, and keyboard actions. Each class includes methods annotated with TestNG's @Test for executing specific tasks like opening applications, logging in, and performing user interactions. Additionally, it showcases XML configurations for organizing test suites and classes.

Uploaded by

anurag.leo.076
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 355

Basic Test Case

package day42;

import org.testng.annotations.Test;

/*

1) Open app

2) Login

3) Logout

*/

// -4 -5 -3 -2 -1 0 1 2 3 4 5

public class FirstTestCase

@Test(priority=1)

void logout()

System.out.println("Logout from application.....");

@Test(priority=0)

void login()

System.out.println("Login to application.....");

@Test(priority=-1)

void openapp()
{

System.out.println("opening application...");

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">

<suite name="mysuite">

<test name="my tests">

<classes>

<class name="day42.OrangeHRMTest"/>

<class name="day42.FirstTestCase"/>

</classes>

</test>

</suite>

Login Form Automation

package day42;

import java.time.Duration;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

import org.testng.annotations.Test;

/*
1) open application

2) test logo presence

3) login

4) close

*/

public class OrangeHRMTest {

WebDriver driver;

@Test(priority=1)

void openapp()

driver=new ChromeDriver();

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

driver.get("https://opensource-demo.orangehrmlive.com/web/index.php/auth/
login");

driver.manage().window().maximize();

@Test(priority=2)

void testLogo() throws InterruptedException

Thread.sleep(3000);

boolean status=driver.findElement(By.xpath("//img[@alt='company-
branding']")).isDisplayed();

System.out.println("logo displayed..."+status);

}
@Test(priority=3)

void testLogin()

driver.findElement(By.xpath("//
input[@placeholder='Username']")).sendKeys("Admin");

driver.findElement(By.xpath("//
input[@placeholder='Password']")).sendKeys("admin123");

driver.findElement(By.xpath("//button[normalize-space()='Login']")).click();

@Test(priority=4)

void closeApp()

driver.quit();

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">

<suite name="Suite">

<test thread-count="5" name="Test">

<classes>

<class name="day42.FirstTestCase"/>

<class name="day42.OrangeHRMTest"/>

</classes>

</test> <!-- Test -->

</suite> <!-- Suite -->

Mouse Hover Action


package day33;

import java.time.Duration;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;

public class DynamicPaginationTable {

public static void main(String[] args) throws InterruptedException {

WebDriver driver=new ChromeDriver();

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

driver.get("https://demo.opencart.com/admin/index.php");

driver.manage().window().maximize();

WebElement username=driver.findElement(By.xpath("//input[@id='input-
username']"));

username.clear();

username.sendKeys("demo");

WebElement password=driver.findElement(By.xpath("//input[@id='input-
password']"));

password.clear();

password.sendKeys("demo");

driver.findElement(By.xpath("//button[normalize-space()='Login']")).click();
//close window if it is available

if(driver.findElement(By.xpath("//button[@class='btn-close']")).isDisplayed())

driver.findElement(By.xpath("//button[@class='btn-close']")).click();

driver.findElement(By.xpath("//a[@class='parent collapsed'][normalize-
space()='Customers']")).click(); //customers main memu

driver.findElement(By.xpath("//ul[@id='collapse-5']//
a[contains(text(),'Customers')]")).click(); //customers sub menu

//Showing 1 to 10 of 19081 (1909 Pages)

String
text=driver.findElement(By.xpath("//div[contains(text(),'Pages')]")).getText();

int total_pages=Integer.parseInt(text.substring(text.indexOf("(")
+1,text.indexOf("Pages")-1));

//repeating pages

for(int p=1;p<=3;p++)

if(p>1)

WebElement active_page=driver.findElement(By.xpath("//ul[@class='pagination']//
*[text()="+p+"]"));

active_page.click();

Thread.sleep(3000);

//reading data from the page


int noOfRows=driver.findElements(By.xpath("//table[@class='table table-bordered
table-hover']//tbody//tr")).size();

for(int r=1;r<=noOfRows;r++)

String customerName=driver.findElement(By.xpath("//table[@class='table table-


bordered table-hover']//tbody//tr["+r+"]/td[2]")).getText();

String email=driver.findElement(By.xpath("//table[@class='table table-bordered


table-hover']//tbody//tr["+r+"]/td[3]")).getText();

String status=driver.findElement(By.xpath("//table[@class='table table-bordered


table-hover']//tbody//tr["+r+"]/td[5]")).getText();

System.out.println(customerName+"\t"+email+"\t"+status);

Date Picker Handling

package day34;

import java.time.Duration;

import java.util.List;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;
public class DatePickerDemo1 {

//selecting future date

static void selectFutureDate(WebDriver driver,String year,String month,String


date)

while(true)

String currentMonth=driver.findElement(By.xpath("//span[@class='ui-datepicker-
month']")).getText();//actutal month

String currentYear=driver.findElement(By.xpath("//span[@class='ui-datepicker-
year']")).getText();//actual year

if(currentMonth.equals(month) && currentYear.equals(year))

break;

driver.findElement(By.xpath("//span[@class='ui-icon ui-icon-circle-triangle-
e']")).click();// Next

//driver.findElement(By.xpath("//span[@class='ui-icon ui-icon-circle-triangle-
w']")).click();//Previous

List<WebElement> allDates=driver.findElements(By.xpath("//table[@class='ui-
datepicker-calendar']//tbody//tr/td//a"));

for(WebElement dt:allDates)

if(dt.getText().equals(date))

dt.click();
break;

//selecting past date

static void selectPastDate(WebDriver driver,String year,String month,String


date)

while(true)

String currentMonth=driver.findElement(By.xpath("//span[@class='ui-datepicker-
month']")).getText();//actutal month

String currentYear=driver.findElement(By.xpath("//span[@class='ui-datepicker-
year']")).getText();//actual year

if(currentMonth.equals(month) && currentYear.equals(year))

break;

driver.findElement(By.xpath("//span[@class='ui-icon ui-icon-circle-triangle-
w']")).click();//Previous

List<WebElement> allDates=driver.findElements(By.xpath("//table[@class='ui-
datepicker-calendar']//tbody//tr/td//a"));

for(WebElement dt:allDates)

if(dt.getText().equals(date))
{

dt.click();

break;

public static void main(String[] args) {

WebDriver driver=new ChromeDriver();

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

driver.get("https://jqueryui.com/datepicker/");

driver.manage().window().maximize();

//switch to frame

driver.switchTo().frame(0);

//Method1 : using sendkeys()

//driver.findElement(By.xpath("//
input[@id='datepicker']")).sendKeys("04/05/2024"); //mm/yy//yyyy

//Method2 : using date picker

driver.findElement(By.xpath("//input[@id='datepicker']")).click(); //opens date


picker

String year="2022";

String month="May";

String date="10";
//selectFutureDate(driver,year,month,date);

selectPastDate(driver,year,month,date);

package day34;

import java.time.Duration;

import java.time.Month;

import java.util.HashMap;

import java.util.List;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.support.ui.Select;

public class DatePickerDemo2 {

//user defined method for converting month from string--->Month

static Month convertMonth(String month) {

HashMap<String, Month> monthMap = new HashMap<String, Month>();

monthMap.put("January", Month.JANUARY);

monthMap.put("February", Month.FEBRUARY);

monthMap.put("March", Month.MARCH);

monthMap.put("April", Month.APRIL);
monthMap.put("May", Month.MAY);

monthMap.put("June", Month.JUNE);

monthMap.put("July", Month.JULY);

monthMap.put("August", Month.AUGUST);

monthMap.put("September", Month.SEPTEMBER);

monthMap.put("October", Month.OCTOBER);

monthMap.put("November", Month.NOVEMBER);

monthMap.put("December", Month.DECEMBER);

Month vmonth = monthMap.get(month);

if (vmonth == null) {

System.out.println("Invalid Month...");

return vmonth;

static void selectDate(WebDriver driver,String requiredYear,String


requiredMonth,String requiredDate)

//select year

WebElement yearDropDown=driver.findElement(By.xpath("//select[@class='ui-
datepicker-year']"));

Select selectYear=new Select(yearDropDown);

selectYear.selectByVisibleText(requiredYear);

//select month

while(true)
{

String displayMonth=driver.findElement(By.xpath("//span[@class='ui-datepicker-
month']")).getText();

//convert requiredMonth & displayMonth in to Month Objects

Month expectedMonth=convertMonth(requiredMonth);

Month currentMonth=convertMonth(displayMonth);

//compare

int result=expectedMonth.compareTo(currentMonth);

// 0 months are equla

//>0 future month

//<0 past

if(result<0) // past

driver.findElement(By.xpath("//span[@class='ui-icon ui-icon-circle-triangle-
w']")).click();

else if(result>0) //future

driver.findElement(By.xpath("//span[@class='ui-icon ui-icon-circle-triangle-
e']")).click();

else

break;

}
//date selection

List<WebElement> allDates=driver.findElements(By.xpath("//table[@class='ui-
datepicker-calendar']//tbody//tr//td//a"));

for(WebElement dt:allDates)

if(dt.getText().equals(requiredDate))

dt.click();

break;

public static void main(String[] args) {

WebDriver driver = new ChromeDriver();

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

driver.get("https://testautomationpractice.blogspot.com/");

driver.manage().window().maximize();

//input DOB

String requiredYear = "2025";

String requiredMonth = "June";

String requiredDate = "15";

driver.switchTo().frame("frame-one796456169");

driver.findElement(By.xpath("//span[@class='icon_calendar']")).click();
selectDate(driver,requiredYear,requiredMonth,requiredDate);

General Selenium Concept

package day35;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.interactions.Action;

import org.openqa.selenium.interactions.Actions;

public class ActionsVsAction {

public static void main(String[] args) {

WebDriver driver=new ChromeDriver();

driver.get("http://swisnl.github.io/jQuery-contextMenu/demo.html");

driver.manage().window().maximize();

WebElement button=driver.findElement(By.xpath("//span[@class='context-menu-one
btn btn-neutral']"));

Actions act=new Actions(driver);


Action myaction=act.contextClick(button).build(); // building/creating an action
and storing into a variable

myaction.perform(); // we are performing/completing action

Double Click Action

package day35;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.interactions.Actions;

public class DoubleClickAction {

public static void main(String[] args) {

WebDriver driver=new ChromeDriver();

driver.get("https://www.w3schools.com/tags/tryit.asp?
filename=tryhtml5_ev_ondblclick3");

driver.manage().window().maximize();

//switch to frame

driver.switchTo().frame("iframeResult");
WebElement box1=driver.findElement(By.xpath("//input[@id='field1']"));

WebElement box2=driver.findElement(By.xpath("//input[@id='field2']"));

WebElement button=driver.findElement(By.xpath("//button[normalize-space()='Copy
Text']"));

box1.clear(); // clears box1

box1.sendKeys("WELCOME");

//Double click action on the button

Actions act=new Actions(driver);

act.doubleClick(button).perform();

//validation : box2 should contains "WELCOME"

String text=box2.getAttribute("value");

System.out.println("captureed value is:"+ text);

if(text.equals("WELCOME"))

System.out.println("Text copied..");

else

System.out.println("Text Not copied properly..");

}
}

Drag and Drop

package day35;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.interactions.Actions;

public class DragAndDropAction {

public static void main(String[] args) {

WebDriver driver=new ChromeDriver();

driver.get("http://www.dhtmlgoodies.com/scripts/drag-drop-custom/demo-drag-drop-
3.html");

driver.manage().window().maximize();

Actions act=new Actions(driver);

//drag and drop1

WebElement rome=driver.findElement(By.xpath("//div[@id='box6']"));

WebElement italy=driver.findElement(By.xpath("//div[@id='box106']"));

act.dragAndDrop(rome, italy).perform();

//drag and drop2


WebElement washington=driver.findElement(By.xpath("//div[@id='box3']"));

WebElement us=driver.findElement(By.xpath("//div[@id='box103']"));

act.dragAndDrop(washington, us).perform();

package day35;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.interactions.Actions;

public class MouseHoverAction {

public static void main(String[] args) {

WebDriver driver=new ChromeDriver();

driver.get("https://demo.opencart.com/");

driver.manage().window().maximize();

WebElement desktops=driver.findElement(By.xpath("//a[normalize-
space()='Desktops']"));

WebElement mac=driver.findElement(By.xpath("//a[normalize-space()='Mac (1)']"));


Actions act=new Actions(driver);

//Mouse hover

//act.moveToElement(desktops).moveToElement(mac).click().build().perform();

act.moveToElement(desktops).moveToElement(mac).perform();

Right Click Action

package day35;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.interactions.Actions;

public class RightClickAction {

public static void main(String[] args) throws InterruptedException {

WebDriver driver=new ChromeDriver();

driver.get("http://swisnl.github.io/jQuery-contextMenu/demo.html");

driver.manage().window().maximize();

WebElement button=driver.findElement(By.xpath("//span[@class='context-menu-one
btn btn-neutral']"));
Actions act=new Actions(driver);

//Right click action

act.contextClick(button).perform();

//click on copy

driver.findElement(By.xpath("//span[normalize-space()='Copy']")).click();

Thread.sleep(5000);

//close alert box

driver.switchTo().alert().accept();

Keyboard Actions

package day36;

import java.time.Duration;

import org.openqa.selenium.By;

import org.openqa.selenium.Keys;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.interactions.Actions;

public class KeyboardActions {


public static void main(String[] args) {

WebDriver driver=new ChromeDriver();

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

driver.get("https://text-compare.com/");

driver.manage().window().maximize();

driver.findElement(By.xpath("//
textarea[@id='inputText1']")).sendKeys("WELCOME");

Actions act=new Actions(driver);

//Ctrl+A - Selects the text

act.keyDown(Keys.CONTROL).sendKeys("A").keyUp(Keys.CONTROL).perform();

//CTRL+C - copy the text into clipboard

act.keyDown(Keys.CONTROL).sendKeys("C").keyUp(Keys.CONTROL).perform();

//TAB - shift to 2nd box

act.keyDown(Keys.TAB).keyUp(Keys.TAB).perform();

//CTRL+V - past the text

act.keyDown(Keys.CONTROL).sendKeys("V").keyUp(Keys.CONTROL).perform();

}
Open Link in New Tab

package day36;

import java.util.ArrayList;

import java.util.List;

import java.util.Set;

import org.openqa.selenium.By;

import org.openqa.selenium.Keys;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.interactions.Actions;

public class OpentheLinkInNewTab {

public static void main(String[] args) {

WebDriver driver=new ChromeDriver();

driver.get("https://demo.nopcommerce.com/");

driver.manage().window().maximize();

WebElement regLink=driver.findElement(By.xpath("//a[normalize-
space()='Register']"));

Actions act=new Actions(driver);

//Control+Reglink

act.keyDown(Keys.CONTROL).click(regLink).keyUp(Keys.CONTROL).perform();
//switching to registration page

List<String> ids=new ArrayList(driver.getWindowHandles());

//Registration

driver.switchTo().window(ids.get(1)); // switch to registration page

driver.findElement(By.xpath("//input[@id='FirstName']")).sendKeys("John
KENEDY");

//Home page

driver.switchTo().window(ids.get(0)); // switch to home page

driver.findElement(By.xpath("//input[@id='small-
searchterms']")).sendKeys("TShirts");

package day36;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.interactions.Actions;

public class SliderDemo {

public static void main(String[] args) {

WebDriver driver=new ChromeDriver();


driver.get("https://www.jqueryscript.net/demo/Price-Range-Slider-jQuery-UI/");

driver.manage().window().maximize();

Actions act=new Actions(driver);

//Min slider

WebElement min_slider=driver.findElement(By.xpath("//div[@class='price-range-
block']//span[1]"));

System.out.println("Defualt Location of the min


slider :"+min_slider.getLocation()); //(58, 249)= (x,y)

act.dragAndDropBy(min_slider, 100, 249).perform();

System.out.println("Location of the min slider after


moving:"+min_slider.getLocation()); //(157, 249)

//Max slider

WebElement max_slider=driver.findElement(By.xpath("//span[2]"));

System.out.println("Default Location of the max


slider :"+max_slider.getLocation()); //(876, 249)

act.dragAndDropBy(max_slider, -100, 249).perform();

System.out.println("Location of the max slider after


moving:"+max_slider.getLocation()); //(778, 249)

package day36;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WindowType;
import org.openqa.selenium.chrome.ChromeDriver;

public class TabsAndWindows {

public static void main(String[] args) {

WebDriver driver=new ChromeDriver();

driver.get("https://www.opencart.com/");

//Selenium4.x

//driver.switchTo().newWindow(WindowType.TAB); //opens new tab

driver.switchTo().newWindow(WindowType.WINDOW);

driver.get("https://orangehrm.com/");

package day37;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

public class FileUpload {

public static void main(String[] args) {


WebDriver driver=new ChromeDriver();

driver.get("https://davidwalsh.name/demo/multiple-file-upload.php");

driver.manage().window().maximize();

//single file upload - Test1.txt

/*driver.findElement(By.xpath("//input[@id='filesToUpload']")).sendKeys("C:\\
Automation\\automationFiles\\Test1.txt");

if(driver.findElement(By.xpath("//ul[@id='fileList']//
li")).getText().equals("Test1.txt"))

System.out.println("File is sucessfully uploaded");

else

System.out.println("Upload failed.");

*/

//Multiple files uploaded

String file1="C:\\Automation\\automationFiles\\Test1.txt";

String file2="C:\\Automation\\automationFiles\\Test2.txt";

driver.findElement(By.xpath("//input[@id='filesToUpload']")).sendKeys(file1+"\
n"+file2);

int noOfFilesUploaded=driver.findElements(By.xpath("//ul[@id='fileList']//
li")).size();

//validation 1 - Number of files

if(noOfFilesUploaded==2)
{

System.out.println("All Files are uploaded");

else

System.out.println("Files are not uploaded or incorrect files uploaded");

//validate file names

if(driver.findElement(By.xpath("//ul[@id='fileList']//
li[1]")).getText().equals("Test1.txt")

&&
driver.findElement(By.xpath("//ul[@id='fileList']//li[2]")).getText().equals("Te
st2.txt"))

System.out.println("File names matching..");

else

System.out.println("Files are not not matching.");

package day37;

import org.openqa.selenium.By;

import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;

public class JavascriptExecutorDemo {

public static void main(String[] args) {

WebDriver driver=new ChromeDriver();

//ChromeDriver driver=new ChromeDriver();

driver.get("https://testautomationpractice.blogspot.com/");

driver.manage().window().maximize();

WebElement inputbox=driver.findElement(By.xpath("//input[@id='name']"));

// passing the text into inputbox - alternate of sendKeys()

JavascriptExecutor js=(JavascriptExecutor)driver; //JavascriptExecutor


js=driver;

js.executeScript("arguments[0].setAttribute('value','John')",inputbox);

// clicking on element - alternate of click()

WebElement radiobtn=driver.findElement(By.xpath("//input[@id='male']"));

js.executeScript("arguments[0].click()",radiobtn);

package day37;
import org.openqa.selenium.By;

import org.openqa.selenium.JavascriptExecutor;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;

public class ScrollingPage {

public static void main(String[] args) throws InterruptedException {

WebDriver driver=new ChromeDriver();

driver.get("https://demo.nopcommerce.com/");

driver.manage().window().maximize();

JavascriptExecutor js=(JavascriptExecutor)driver;

//1) scroll down page by pixel number

//js.executeScript("window.scrollBy(0,1500)", "");

//System.out.println(js.executeScript("return window.pageYOffset;")); //1500

//2) scroll the page till element is visible

/*WebElement ele=driver.findElement(By.xpath("//strong[normalize-
space()='Community poll']"));

js.executeScript("arguments[0].scrollIntoView();", ele);

System.out.println(js.executeScript("return window.pageYOffset;"));
//2103.428466796875

*/
//3) scroll page till end of the page.

js.executeScript("window.scrollBy(0,document.body.scrollHeight)");

System.out.println(js.executeScript("return window.pageYOffset;"));
//2103.428466796875

Thread.sleep(5000);

//scrolling up to initial position

js.executeScript("window.scrollBy(0,-document.body.scrollHeight)");

package day37;

import org.openqa.selenium.JavascriptExecutor;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

public class ZoomInZoomOut {

public static void main(String[] args) throws InterruptedException {

WebDriver driver=new ChromeDriver();

driver.get("https://demo.nopcommerce.com/");

//Thread.sleep(5000);

//driver.manage().window().minimize();
//Thread.sleep(5000);

driver.manage().window().maximize();

Thread.sleep(5000);

JavascriptExecutor js=(JavascriptExecutor)driver;

js.executeScript("document.body.style.zoom='50%'"); // set zoom level 50%

Thread.sleep(5000);

js.executeScript("document.body.style.zoom='80%'"); // set zoom level 50%

Thread.sleep(5000);

package day38;

import java.io.File;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.chrome.ChromeOptions;

public class BloackingAds {

public static void main(String[] args) {

ChromeOptions options=new ChromeOptions();


File file=new File("C:\\Automation\\automationFiles\\crx files\\uBlock-
Origin.crx");

options.addExtensions(file);

WebDriver driver=new ChromeDriver(options);

driver.get("https://text-compare.com/");

package day38;

import java.io.File;

import java.time.Duration;

import org.openqa.selenium.By;

import org.openqa.selenium.OutputType;

import org.openqa.selenium.TakesScreenshot;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;

public class CaptureScreenshots {

public static void main(String[] args) {

WebDriver driver=new ChromeDriver();

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
driver.get("https://demo.nopcommerce.com/");

driver.manage().window().maximize();

//1) full page screenshot

/*TakesScreenshot ts=(TakesScreenshot)driver;

File sourcefile=ts.getScreenshotAs(OutputType.FILE);

File targetfile=new File(System.getProperty("user.dir")+"\\screenshots\\


fullpage.png");

sourcefile.renameTo(targetfile); // copy sourcefile to target file

*/

//2) capture the screenshot of specific section

/*WebElement
featuredProducts=driver.findElement(By.xpath("//div[@class='product-grid home-
page-product-grid']"));

File sourcefile=featuredProducts.getScreenshotAs(OutputType.FILE);

File targetfile=new File(System.getProperty("user.dir")+"\\screenshots\\


featredproducts.png");

sourcefile.renameTo(targetfile); // copy sourcefile to target file

*/

//3) capture the screenshot of webelement

WebElement logo=driver.findElement(By.xpath("//img[@alt='nopCommerce demo


store']"));

File sourcefile=logo.getScreenshotAs(OutputType.FILE);

File targetfile=new File(System.getProperty("user.dir")+"\\screenshots\\


logo.png");

sourcefile.renameTo(targetfile); // copy sourcefile to target file

//driver.quit();
}

package day38;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.chrome.ChromeOptions;

public class DisableAutomatedmessageonscreen {

public static void main(String[] args) {

ChromeOptions options=new ChromeOptions();

options.setExperimentalOption("excludeSwitches", new String[] {"enable-


automation"});

WebDriver driver=new ChromeDriver(options);

driver.get("https://demo.opencart.com/");

String act_title=driver.getTitle();

if(act_title.equals("Your Store"))

System.out.println("Test Passed");

else

{
System.out.println("Test Failed");

//driver.quit();

package day38;

import java.io.File;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.chrome.ChromeOptions;

public class EnableExtensionsAtRuneTime {

public static void main(String[] args) {

ChromeOptions options=new ChromeOptions();

File file=new File("C:\\Automation\\automationFiles\\crx files\\


SelectorsHub.crx");

options.addExtensions(file);

WebDriver driver=new ChromeDriver(options);


driver.get("https://text-compare.com/");

package day38;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.chrome.ChromeOptions;

public class HandleSSL {

public static void main(String[] args) {

ChromeOptions options=new ChromeOptions();

options.setAcceptInsecureCerts(true); // accepts SSL certificates

WebDriver driver=new ChromeDriver(options);

driver.get("https://expired.badssl.com/");

System.out.println("title of the page:"+driver.getTitle()); //Privacy error

//expired.badssl.com

}
package day38;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.chrome.ChromeOptions;

public class HeadlessTesting {

public static void main(String[] args) {

ChromeOptions options=new ChromeOptions();

options.addArguments("--headless=new"); // setting for headless mode of


execution

WebDriver driver=new ChromeDriver(options);

driver.get("https://demo.opencart.com/");

String act_title=driver.getTitle();

if(act_title.equals("Your Store"))

System.out.println("Test Passed");

else

System.out.println("Test Failed");

driver.quit();
}

package day38;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.chrome.ChromeOptions;

public class RunTestsIncognitoMode {

public static void main(String[] args) {

ChromeOptions options=new ChromeOptions();

options.addArguments("--incognito");

WebDriver driver=new ChromeDriver(options);

driver.get("https://demo.opencart.com/");

String act_title=driver.getTitle();

if(act_title.equals("Your Store"))

System.out.println("Test Passed");

else

{
System.out.println("Test Failed");

//driver.quit();

package day39;

import java.net.HttpURLConnection;

import java.net.URL;

import java.time.Duration;

import java.util.List;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;

/*

1) Link href="https://xyz.com"

2) https://xyz.com ---> server ---> status code

3) status code>=400 broken link

status code <400 not a broken link

*/
public class BrokenLinks {

public static void main(String[] args) {

WebDriver driver=new ChromeDriver();

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

driver.get("http://www.deadlinkcity.com/");

driver.manage().window().maximize();

//capture all the links from website

List<WebElement> links=driver.findElements(By.tagName("a"));

System.out.println("Total number of links:"+ links.size());

int noOfBrokenLinks=0;

for(WebElement linkElement:links)

String hrefattValue=linkElement.getAttribute("href");

if(hrefattValue==null || hrefattValue.isEmpty())

System.out.println("href attribute value is null or empty. So Not possible to


check ");

continue;

//hit url to the server

try

{
URL linkURL=new URL(hrefattValue); // converted href value from string to URL
format

HttpURLConnection conn=(HttpURLConnection) linkURL.openConnection(); // open


connection to the server

conn.connect(); //connect to server and sent request the server

if(conn.getResponseCode()>=400)

System.out.println(hrefattValue+"=====> Broken link");

noOfBrokenLinks++;

else

System.out.println(hrefattValue+"======> Not a broken link");

catch(Exception e)

System.out.println("Number of broken links:"+ noOfBrokenLinks); //42

package day39;

import java.time.Duration;
import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

public class HandleSVGElements {

public static void main(String[] args) {

WebDriver driver=new ChromeDriver();

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

driver.get("https://opensource-demo.orangehrmlive.com/web/index.php/auth/
login");

driver.manage().window().maximize();

driver.findElement(By.xpath("//
input[@placeholder='Username']")).sendKeys("Admin");

driver.findElement(By.xpath("//
input[@placeholder='Password']")).sendKeys("admin123");

driver.findElement(By.xpath("//button[normalize-space()='Login']")).click();

//abs xpath

//driver.findElement(By.xpath("//*[@id=\"app\"]/div[1]/div[1]/aside/nav/div[2]/
ul/li[4]/a/svg")).click();

//rel xpath using text

//driver.findElement(By.xpath("//span[normalize-space()='Time']")).click();

//identify svg element

//driver.findElement(By.xpath("//a[@class='oxd-main-menu-item
active']//*[name()='svg']")).click();
driver.findElement(By.xpath("//button[@title='Timesheets']//
*[name()='svg']")).click();

package day39;

import org.openqa.selenium.By;

import org.openqa.selenium.SearchContext;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

public class ShadowDomElements {

public static void main(String[] args) throws InterruptedException {

WebDriver driver=new ChromeDriver();

driver.get("https://books-pwakit.appspot.com/");

driver.manage().window().maximize();

//driver.findElement(By.cssSelector("#input")).sendKeys("WELCOME");
//NoSuchElementException

//Hnadle shaow dom element

SearchContext shadow = driver.findElement(By.cssSelector("book-


app[apptitle='BOOKS']")).getShadowRoot();
Thread.sleep(1000);

shadow.findElement(By.cssSelector("#input")).sendKeys("WELCOME");

package day43;

import org.testng.annotations.*;

public class AllAnnotations {

@BeforeSuite

void bs()

System.out.println("This is before suite.....");

@AfterSuite

void as()

System.out.println("This is after suite.....");

@BeforeTest

void bt()

System.out.println("This is before test method.....");

}
@AfterTest

void at()

System.out.println("This is after test method.....");

@BeforeClass

void bc()

System.out.println("This is before class method.....");

@AfterClass

void ac()

System.out.println("This is after class method.....");

@BeforeMethod

void bm()

System.out.println("This is before method.....");

@AfterMethod

void am()

System.out.println("This is after method.....");

}
@Test(priority=1)

void tm1()

System.out.println("This is Test Method1...");

@Test(priority=2)

void tm2()

System.out.println("This is Test Method2...");

package day43;

import org.testng.annotations.AfterMethod;

import org.testng.annotations.BeforeMethod;

import org.testng.annotations.Test;

/*1) Login -- @BeforeMethod

2) Search -- @Test

3)Logout -- @AfterMethod

4)Login

5)Advanced search --- @Test

6)Logout

*/

public class AnnotationsDemo1 {


@BeforeMethod

void login()

System.out.println("This is login..");

@AfterMethod

void logout()

System.out.println("this is logout...");

@Test(priority=1)

void search()

System.out.println("this is search...");

@Test(priority=2)

void advacedsearch()

System.out.println("this advanced search....");

package day43;

import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;

import org.testng.annotations.Test;

/*1) Login --- @BeforeClass

2) Search --- @Test

3) Adv search --- @Test

4) Logout -- -AfterClass

*/

public class AnnotationsDemo2 {

@BeforeClass

void login()

System.out.println("This is login..");

@AfterClass

void logout()

System.out.println("this is logout...");

@Test(priority=1)

void search()

System.out.println("this is search...");

@Test(priority=2)
void advacedsearch()

System.out.println("this advanced search....");

package day43;

import org.testng.Assert;

import org.testng.annotations.Test;

public class AssertionsDemo {

@Test

void testTitle()

String exp_title="Opencart";

String act_title="Openshot";

/*if(exp_title.equals(act_title))

System.out.println("test passed");

else

System.out.println("test failed");

}*/

//Assert.assertEquals(exp_title, act_title);
if(exp_title.equals(act_title))

System.out.println("test passed");

Assert.assertTrue(true);

else

System.out.println("test failed");

Assert.assertTrue(false);

package day43;

import org.testng.Assert;

import org.testng.annotations.Test;

public class HardAssertions {

@Test

void test()

//Assert.assertEquals("xyz","xyz");

//Assert.assertEquals(123,345);
//Assert.assertEquals("abc",123);

//Assert.assertEquals("123",123);

//Assert.assertNotEquals(123,123); // failed

//Assert.assertNotEquals(123,345); //passed

//Assert.assertTrue(true); //pass

//Assert.assertTrue(false); //failed

//Assert.assertTrue(1==2); //fail

//Assert.assertTrue(1==1); //passed

//Assert.assertFalse(1==2); //passed

//Assert.assertFalse(1==1); //failed

//Assert.fail();

package day43;

import org.testng.Assert;

import org.testng.annotations.Test;

import org.testng.asserts.SoftAssert;

public class HardVsSoftAssertions {

SoftAssert sa;
//@Test

void test_hardassertions()

System.out.println("testign.....");

System.out.println("testign.....");

Assert.assertEquals(1, 2); //hard assertion

System.out.println("testing....");

System.out.println("testing....");

@Test

void test_softassertion()

System.out.println("testign.....");

System.out.println("testign.....");

SoftAssert sa=new SoftAssert();

sa.assertEquals(1, 2); //soft assertion

System.out.println("testing....");

System.out.println("testing....");

sa.assertAll(); // mandatory

}
TestNG Configuration

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">

<suite name="Suite">

<test thread-count="5" name="Test">

<classes>

<class name="day43.AllAnnotations"/>

</classes>

</test> <!-- Test -->

</suite> <!-- Suite -->

package day43.pack;

import org.testng.annotations.AfterTest;

import org.testng.annotations.BeforeTest;

import org.testng.annotations.Test;

public class C1 {

@Test

void abc()

System.out.println(" this is abc from C1..");

@BeforeTest

void bt()

System.out.println("this is BeforeTest method....");


}

package day43.pack;

import org.testng.annotations.AfterTest;

import org.testng.annotations.BeforeTest;

import org.testng.annotations.Test;

public class C2 {

@Test

void xyz()

System.out.println(" this is xyz from C2..");

@AfterTest

void at()

System.out.println("this is AfterTest method....");

package day43.pack;

import org.testng.annotations.AfterSuite;

import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Test;

public class C3 {

@Test

void pqr()

System.out.println("this is pqr from C3..");

@BeforeSuite

void bs()

System.out.println("This is BeforeSuite method..");

@AfterSuite

void as()

System.out.println("This is AfterSuite method..");

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">

<suite name="Suite">

<test name="Test1">
<classes>

<class name="day43.pack.C1"/>

<class name="day43.pack.C2"/>

<class name="day43.pack.C3"/>

</classes>

</test> <!-- Test -->

<test name="Test2">

<classes>

<class name="day43.pack.C1"/>

<class name="day43.pack.C2"/>

<class name="day43.pack.C3"/>

</classes>

</test> <!-- Test -->

</suite> <!-- Suite -->

package day44;

import org.testng.Assert;

import org.testng.annotations.Test;

public class DependencyMethods {

@Test(priority=1)

void openapp()

Assert.assertTrue(true);

}
@Test(priority=2, dependsOnMethods= {"openapp"})

void login()

Assert.assertTrue(true);

@Test(priority=3,dependsOnMethods= {"login"})

void search()

Assert.assertTrue(false);

@Test(priority=4,dependsOnMethods= {"login","search"})

void advsearch()

Assert.assertTrue(true);

@Test(priority=5,dependsOnMethods= {"login"})

void logout()

Assert.assertTrue(true);

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">

<suite name="groupingsuite">
<test name="groupingtests">

<groups>

<run>

<!--<include name="functional"/> -->

<exclude name="functional"/>

</run>

</groups>

<classes>

<class name="day44.LoginTests"/>

<class name="day44.SignupTests"/>

<class name="day44.PaymentTests"/>

</classes>

</test>

</suite>

package day44;

import org.testng.annotations.Test;

public class LoginTests {

@Test(priority=1,groups= {"sanity"})

void loginByEmail()

System.out.println("This is login by email..");


}

@Test(priority=2,groups= {"sanity"})

void loginByFacebook()

System.out.println("This is login by facebook..");

@Test(priority=3,groups= {"sanity"})

void loginBytwitter()

System.out.println("This is login by twittert..");

package day44;

import org.testng.annotations.Test;

public class PaymentTests {

@Test(priority=1,groups= {"sanity","regression","functional"})

void paymentinRupees()

System.out.println("payment in rupees....");

@Test(priority=2,groups= {"sanity","regression","functional"})

void paymentinDollars()
{

System.out.println("payment in dollars....");

package day44;

import org.testng.annotations.Test;

public class SignupTests {

@Test(priority=1,groups= {"regression"})

void signupbyemail()

System.out.println("this is signup by email....");

@Test(priority=1,groups= {"regression"})

void signupbyfacebook()

System.out.println("this is signup by facebook....");

@Test(priority=1,groups= {"regression"})

void signupbytwitter()

System.out.println("this is signup by twitter....");

}
}

package day45;

import java.time.Duration;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

import org.testng.Assert;

import org.testng.annotations.AfterClass;

import org.testng.annotations.BeforeClass;

import org.testng.annotations.DataProvider;

import org.testng.annotations.Test;

public class DataProviderDemo {

WebDriver driver;

@BeforeClass

void setup()

driver=new ChromeDriver();

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

@Test(dataProvider="dp")

void testLogin(String email, String pwd) throws InterruptedException

driver.get("https://tutorialsninja.com/demo/index.php?route=account/login");
driver.manage().window().maximize();

driver.findElement(By.xpath("//input[@id='input-email']")).sendKeys(email);

driver.findElement(By.xpath("//input[@id='input-password']")).sendKeys(pwd);

driver.findElement(By.xpath("//input[@value='Login']")).click();

//Thread.sleep(2000);

boolean status=driver.findElement(By.xpath("//h2[normalize-space()='My
Account']")).isDisplayed();

if(status==true)

driver.findElement(By.xpath("//a[@class='list-group-item'][normalize-
space()='Logout']")).click();

Assert.assertTrue(true);

else

Assert.fail();

@AfterClass

void tearDown()

driver.close();

@DataProvider(name="dp", indices= {0,3,4})

Object[][] loginData()

Object data[][]= {
{"[email protected]", "test123"},

{"[email protected]", "test012"},

{"[email protected]", "test@123"},

{"[email protected]", "test@123"},

{"[email protected]", "test"},

};

return data;

package day45;

import java.time.Duration;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.edge.EdgeDriver;

import org.openqa.selenium.firefox.FirefoxDriver;

import org.testng.Assert;

import org.testng.annotations.AfterClass;

import org.testng.annotations.BeforeClass;

import org.testng.annotations.Parameters;

import org.testng.annotations.Test;

public class ParamTest {


WebDriver driver;

@BeforeClass

@Parameters({"browser","url"})

void setup(String br,String url) throws InterruptedException

switch(br.toLowerCase())

case "chrome": driver=new ChromeDriver(); break;

case "edge" : driver=new EdgeDriver();break;

case "firefox" : driver=new FirefoxDriver();break;

default: System.out.println("Invalid browser");return;

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

driver.get(url);

driver.manage().window().maximize();

Thread.sleep(5000);

@Test(priority=1)

void testLogo()

boolean status=driver.findElement(By.xpath("//img[@alt='company-
branding']")).isDisplayed();

Assert.assertEquals(status, true);

@Test(priority=2)
void testTitle()

Assert.assertEquals(driver.getTitle(),"OrangeHRM");

@Test(priority=3)

void testURL()

Assert.assertEquals(driver.getCurrentUrl(),"https://opensource-
demo.orangehrmlive.com/web/index.php/auth/login");

@AfterClass

void tearDown()

driver.quit();

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">

<suite thread-count="5" name="Suite" parallel="tests">

<test name="chrometest">

<parameter name="browser" value="chrome"/>

<parameter name="url"
value="https://opensource-demo.orangehrmlive.com/web/index.php/auth/login"/>

<classes>

<class name="day45.ParamTest"/>
</classes>

</test> <!-- Test -->

<test name="edgetest">

<parameter name="browser" value="edge"/>

<parameter name="url"
value="https://opensource-demo.orangehrmlive.com/web/index.php/auth/login"/>

<classes>

<class name="day45.ParamTest"/>

</classes>

</test> <!-- Test -->

<test name="firefoxtest">

<parameter name="url"
value="https://opensource-demo.orangehrmlive.com/web/index.php/auth/login"/>

<parameter name="browser" value="firefox"/>

<classes>

<class name="day45.ParamTest"/>

</classes>

</test> <!-- Test -->

</suite> <!-- Suite -->

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">

<suite name="Suite">

<listeners>

<listener class-name="day46.ExtentReportManager" />

</listeners>
<test thread-count="5" name="Test">

<classes>

<class name="day46.OrangeHRM"/>

</classes>

</test> <!-- Test -->

</suite> <!-- Suite -->

package day46;

import org.testng.ITestListener;

import org.testng.ITestContext;

import org.testng.ITestListener;

import org.testng.ITestResult;

import com.aventstack.extentreports.ExtentReports;

import com.aventstack.extentreports.ExtentTest;

import com.aventstack.extentreports.Status;

import com.aventstack.extentreports.reporter.ExtentSparkReporter;

import com.aventstack.extentreports.reporter.configuration.Theme;

public class ExtentReportManager implements ITestListener

public ExtentSparkReporter sparkReporter; // UI of the report

public ExtentReports extent; //populate common info on the report

public ExtentTest test; // creating test case entries in the report and update
status of the test methods

public void onStart(ITestContext context) {


sparkReporter=new ExtentSparkReporter(System.getProperty("user.dir")+
"/reports/myReport.html");//specify location of the report

sparkReporter.config().setDocumentTitle("Automation Report"); // TiTle of report

sparkReporter.config().setReportName("Functional Testing"); // name of the


report

sparkReporter.config().setTheme(Theme.STANDARD);

extent=new ExtentReports();

extent.attachReporter(sparkReporter);

extent.setSystemInfo("Computer Name","localhost");

extent.setSystemInfo("Environment","QA");

extent.setSystemInfo("Tester Name","Pavan");

extent.setSystemInfo("os","Windows10");

extent.setSystemInfo("Browser name","Chrome");

public void onTestSuccess(ITestResult result) {

test = extent.createTest(result.getName()); // create a new enty in the report

test.log(Status.PASS, "Test case PASSED is:" + result.getName()); // update


status p/f/s

public void onTestFailure(ITestResult result) {

test = extent.createTest(result.getName());
test.log(Status.FAIL, "Test case FAILED is:" + result.getName());

test.log(Status.FAIL, "Test Case FAILED cause is: " + result.getThrowable());

public void onTestSkipped(ITestResult result) {

test = extent.createTest(result.getName());

test.log(Status.SKIP, "Test case SKIPPED is:" + result.getName());

public void onFinish(ITestContext context) {

extent.flush();

package day46;

import org.testng.ITestContext;

import org.testng.ITestListener;

import org.testng.ITestResult;

public class MyListener implements ITestListener

public void onStart(ITestContext context) {

System.out.println("Test execution is started.......");


}

public void onTestStart(ITestResult result) {

System.out.println("test started...");

public void onTestSuccess(ITestResult result) {

System.out.println("test passed...");

public void onTestFailure(ITestResult result) {

System.out.println("test failed...");

public void onTestSkipped(ITestResult result) {

System.out.println("test skipped...");

public void onFinish(ITestContext context) {

System.out.println("test execution is completed...");

package day46;

import java.time.Duration;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

import org.testng.Assert;

import org.testng.annotations.AfterClass;

import org.testng.annotations.BeforeClass;

import org.testng.annotations.Listeners;

import org.testng.annotations.Test;

//@Listeners(day46.MyListener.class)

public class OrangeHRM {

WebDriver driver;

@BeforeClass

void setup() throws InterruptedException

driver=new ChromeDriver();

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

driver.get("https://opensource-demo.orangehrmlive.com/web/index.php/auth/
login");

driver.manage().window().maximize();

Thread.sleep(3000);

@Test(priority=1)

void testLogo()

boolean status=driver.findElement(By.xpath("//img[@alt='company-
branding']")).isDisplayed();

Assert.assertEquals(status, true);
}

@Test(priority=2)

void testAppUrl()

Assert.assertEquals(driver.getCurrentUrl(),"https://opensource-
demo.orangehrmlive.com/");

@Test(priority=3, dependsOnMethods= {"testAppUrl"})

void testHomePageTitle()

Assert.assertEquals(driver.getTitle(),"OrangeHRM");

@AfterClass

void tearDown()

driver.quit();

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">

<suite name="Suite">

<listeners>

<listener class-name="day46.MyListener" />


</listeners>

<test thread-count="5" name="Test">

<classes>

<class name="day46.OrangeHRM"/>

</classes>

</test> <!-- Test -->

</suite> <!-- Suite -->

package day30;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

public class AuthenticatedPopup {

public static void main(String[] args) {

WebDriver driver=new ChromeDriver();

//driver.get("http://the-internet.herokuapp.com/basic_auth");

//syntax

//http://username:[email protected]/basic_auth

driver.get("http://admin:[email protected]/basic_auth");

driver.manage().window().maximize();

}
}

package day30;

import java.time.Duration;

import org.openqa.selenium.Alert;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.support.ui.ExpectedConditions;

import org.openqa.selenium.support.ui.WebDriverWait;

public class HandleAlertusingExplicitwait {

public static void main(String[] args) throws InterruptedException {

WebDriver driver=new ChromeDriver();

WebDriverWait mywait=new WebDriverWait(driver,Duration.ofSeconds(10));


//explicit wiat declaration

driver.get("https://the-internet.herokuapp.com/javascript_alerts");

driver.manage().window().maximize();

driver.findElement(By.xpath("//button[normalize-space()='Click for JS
Alert']")).click(); //opens alert box

Thread.sleep(5000);
Alert myalert=mywait.until(ExpectedConditions.alertIsPresent()); // capture
alertbox using explicit wait

myalert.accept();

package day30;

import java.time.Duration;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;

public class HandleFrames {

public static void main(String[] args) {

WebDriver driver=new ChromeDriver();

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

driver.get("https://ui.vision/demo/webtest/frames/");

driver.manage().window().maximize();

//Frame1

WebElement frame1=driver.findElement(By.xpath("//frame[@src='frame_1.html']"));

driver.switchTo().frame(frame1);
driver.findElement(By.xpath("//input[@name='mytext1']")).sendKeys("Welcome");

driver.switchTo().defaultContent();

//Frame2

WebElement frame2=driver.findElement(By.xpath("//frame[@src='frame_2.html']"));

driver.switchTo().frame(frame2);

driver.findElement(By.xpath("//input[@name='mytext2']")).sendKeys("Automation");

driver.switchTo().defaultContent();

//frame3

WebElement frame3=driver.findElement(By.xpath("//frame[@src='frame_3.html']"));

driver.switchTo().frame(frame3);

driver.findElement(By.xpath("//
input[@name='mytext3']")).sendKeys("programming");

//swith to inner frame (part of frame3)

driver.switchTo().frame(0); // switched to inner frame

driver.findElement(By.xpath("//div[@id='i5']//div[@class='AB7Lab
Id5V1']")).click();

package day30;

import org.openqa.selenium.Alert;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

public class HnadleAlerts {

public static void main(String[] args) throws InterruptedException {

WebDriver driver=new ChromeDriver();

driver.get("https://the-internet.herokuapp.com/javascript_alerts");

driver.manage().window().maximize();

//1) Normal alert with OK button

/*driver.findElement(By.xpath("//button[normalize-space()='Click for JS
Alert']")).click(); // opens alert box

Thread.sleep(5000);

//Alert myalert=driver.switchTo().alert();

//myalert.accept();

driver.switchTo().alert().accept();

*/

//2) confirmation Alert - OK & Cancel

//driver.findElement(By.xpath("//button[normalize-space()='Click for JS
Confirm']")).click();// opens alert

//Thread.sleep(5000);

//driver.switchTo().alert().accept(); // close alert window using OK button

//driver.switchTo().alert().dismiss(); // close alert window using Cancel


button
//3) Prompt alert- Input box

driver.findElement(By.xpath("//button[normalize-space()='Click for JS
Prompt']")).click(); //opens alert

Thread.sleep(5000);

Alert myalert=driver.switchTo().alert();

System.out.println("Text msg on alert:"+myalert.getText()); //I am a JS prompt

myalert.sendKeys("John");

myalert.accept();

String res=driver.findElement(By.xpath("//p[@id='result']")).getText();

if(res.contains("John"))

System.out.println("test passed");

else

System.out.println("test failed");

package day31;
import java.time.Duration;

import java.util.List;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;

public class BoostrapDropDown {

public static void main(String[] args) {

WebDriver driver=new ChromeDriver();

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

driver.get("https://www.jquery-az.com/boots/demo.php?ex=63.0_2");

driver.manage().window().maximize();

driver.findElement(By.xpath("//
button[contains(@class,'multiselect')]")).click(); // opens dropdown options

//1) Select single option

//driver.findElement(By.xpath("//input[@value='Java']")).click();

//2) capture all the options and find out size

List<WebElement>
options=driver.findElements(By.xpath("//ul[contains(@class,'multiselect')]//
label"));

System.out.println("Number of options:"+options.size()); //14

//3) printing options from dropdown


/*for(WebElement op:options)

System.out.println(op.getText());

*/

//4) select multiple options

for(WebElement op:options)

String option=op.getText();

if(option.equals("Java") || option.equals("Python") || option.equals("MySQL"))

op.click();

package day31;

import java.time.Duration;

import java.util.List;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;
public class GoogleSearch_AutoSuggestDropDown {

public static void main(String[] args) throws InterruptedException {

WebDriver driver=new ChromeDriver();

driver.manage().deleteAllCookies(); //deletes all the cookies in your browser

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

driver.get("http://www.google.com");

driver.manage().window().maximize();

driver.findElement(By.name("q")).sendKeys("selenium");//Search box

Thread.sleep(5000);

List <WebElement>
list=driver.findElements(By.xpath("//ul[@role='listbox']//li//div[@role='option'
]"));

System.out.println(list.size());

for(int i=0;i<list.size();i++)

System.out.println(list.get(i).getText());

if(list.get(i).getText().equals("selenium"))

list.get(i).click();

break;
}

package day31;

import java.time.Duration;

import java.util.List;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;

public class HandleHiddenDropDown {

public static void main(String[] args) throws InterruptedException {

WebDriver driver=new ChromeDriver();

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

driver.get("https://opensource-demo.orangehrmlive.com/web/index.php");

driver.manage().window().maximize();

//Login steps
driver.findElement(By.name("username")).sendKeys("Admin");

driver.findElement(By.name("password")).sendKeys("admin123");

driver.findElement(By.xpath("//button[normalize-space()='Login']")).click();

//clicking on PIM

driver.findElement(By.xpath("//span[normalize-space()='PIM']")).click(); //PIM

//clicked on dropdown

driver.findElement(By.xpath("//body/div[@id='app']/div[@class='oxd-layout']/
div[@class='oxd-layout-container']/div[@class='oxd-layout-context']/
div[@class='orangehrm-background-container']/div[@class='oxd-table-filter']/
div[@class='oxd-table-filter-area']/form[@class='oxd-form']/div[@class='oxd-
form-row']/div[@class='oxd-grid-4
orangehrm-full-width-grid']/div[6]/div[1]/div[2]/div[1]/div[1]")).click();

Thread.sleep(5000);

//select single option

//driver.findElement(By.xpath("//span[normalize-space()='Financial
Analyst']")).click();

//count number of options

List<WebElement>
options=driver.findElements(By.xpath("//div[@role='listbox']//span"));

System.out.println("Number of options:"+ options.size()); //29

//printing options

for(WebElement op:options)

System.out.println(op.getText());

}
}

package day31;

import java.time.Duration;

import java.util.List;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.support.ui.Select;

import io.opentelemetry.exporter.logging.SystemOutLogRecordExporter;

public class SelectDropDown {

public static void main(String[] args) {

WebDriver driver=new ChromeDriver();

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

driver.get("https://testautomationpractice.blogspot.com/");

driver.manage().window().maximize();

WebElement
drpCountryEle=driver.findElement(By.xpath("//select[@id='country']"));

Select drpCountry=new Select(drpCountryEle);


//select option from the drop down

//drpCountry.selectByVisibleText("France");

//drpCountry.selectByValue("japan");

//drpCountry.selectByIndex(2);

//capture the options from the dropdown

List<WebElement>options=drpCountry.getOptions();

System.out.println("Number of options in a drop down:"+options.size()); //10

//printing the options

/*for(int i=0;i<options.size();i++)

System.out.println(options.get(i).getText());

*/

//enhanced for loop

for(WebElement op:options)

System.out.println(op.getText());

}
package day32;

import java.time.Duration;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

public class StaticTable {

public static void main(String[] args) {

WebDriver driver =new ChromeDriver();

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

driver.get("https://testautomationpractice.blogspot.com/");

driver.manage().window().maximize();

//1) find total number of rows in a table

int rows=driver.findElements(By.xpath("//table[@name='BookTable']//tr")).size();
//multiple table

//int rows=driver.findElements(By.tagName("tr")).size(); // single table

System.out.println("Number of rows:"+rows); //7

//2) find total number of columns in a table

int cols=driver.findElements(By.xpath("//table[@name='BookTable']//th")).size();
//multiple tables

//int cols=driver.findElements(By.tagName("th")).size(); //single table


System.out.println("Number of columsn is:"+cols); //4

//3) Read data from specific row and column (ex: 5th row and 1st colum)

//String bookName=driver.findElement(By.xpath("//table[@name='BookTable']//
tr[5]//td[1]")).getText();

//System.out.println(bookName); //Master In Selenium

//4) read data from all the rows and colums

/*System.out.println("BookName"+"\t"+"Author"+"\t"+"Subject"+"\t"+"Price");

for(int r=2;r<=rows;r++)

for(int c=1;c<=cols;c++)

String
value=driver.findElement(By.xpath("//table[@name='BookTable']//tr["+r+"]//
td["+c+"]")).getText();

System.out.print(value+"\t");

System.out.println();

*/

//5) Print book names whose author is Mukesh

/*for(int r=2;r<=rows;r++)

String authorName=driver.findElement(By.xpath("//table[@name='BookTable']//
tr["+r+"]//td[2]")).getText();
if(authorName.equals("Mukesh"))

String bookName=driver.findElement(By.xpath("//table[@name='BookTable']//
tr["+r+"]//td[1]")).getText();

System.out.println(bookName+"\t"+authorName);

*/

//6) Find total price of all the books

int total=0;

for(int r=2;r<=rows;r++)

String
price=driver.findElement(By.xpath("//table[@name='BookTable']//tr["+r+"]//
td[4]")).getText();

total=total+Integer.parseInt(price);

System.out.println("Total Price of the books:"+total); //7100

package day33;

import java.time.Duration;
import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;

public class DynamicPaginationTable {

public static void main(String[] args) throws InterruptedException {

WebDriver driver=new ChromeDriver();

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

driver.get("https://demo.opencart.com/admin/index.php");

driver.manage().window().maximize();

WebElement username=driver.findElement(By.xpath("//input[@id='input-
username']"));

username.clear();

username.sendKeys("demo");

WebElement password=driver.findElement(By.xpath("//input[@id='input-
password']"));

password.clear();

password.sendKeys("demo");

driver.findElement(By.xpath("//button[normalize-space()='Login']")).click();

//close window if it is available

if(driver.findElement(By.xpath("//button[@class='btn-close']")).isDisplayed())

{
driver.findElement(By.xpath("//button[@class='btn-close']")).click();

driver.findElement(By.xpath("//a[@class='parent collapsed'][normalize-
space()='Customers']")).click(); //customers main memu

driver.findElement(By.xpath("//ul[@id='collapse-5']//
a[contains(text(),'Customers')]")).click(); //customers sub menu

//Showing 1 to 10 of 19081 (1909 Pages)

String
text=driver.findElement(By.xpath("//div[contains(text(),'Pages')]")).getText();

int total_pages=Integer.parseInt(text.substring(text.indexOf("(")
+1,text.indexOf("Pages")-1));

//repeating pages

for(int p=1;p<=3;p++)

if(p>1)

WebElement active_page=driver.findElement(By.xpath("//ul[@class='pagination']//
*[text()="+p+"]"));

active_page.click();

Thread.sleep(3000);

//reading data from the page

int noOfRows=driver.findElements(By.xpath("//table[@class='table table-bordered


table-hover']//tbody//tr")).size();

for(int r=1;r<=noOfRows;r++)
{

String customerName=driver.findElement(By.xpath("//table[@class='table table-


bordered table-hover']//tbody//tr["+r+"]/td[2]")).getText();

String email=driver.findElement(By.xpath("//table[@class='table table-bordered


table-hover']//tbody//tr["+r+"]/td[3]")).getText();

String status=driver.findElement(By.xpath("//table[@class='table table-bordered


table-hover']//tbody//tr["+r+"]/td[5]")).getText();

System.out.println(customerName+"\t"+email+"\t"+status);

package day47;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

public class LoginPage {

WebDriver driver;

//constructor

LoginPage(WebDriver driver)

this.driver=driver;
}

//Locators

By txt_username_loc=By.xpath("//input[@placeholder='Username']");

By txt_password_loc=By.xpath("//input[@placeholder='Password']");

By btn_login_loc=By.xpath("//button[normalize-space()='Login']");

//Action methods

public void setUserName(String user)

driver.findElement(txt_username_loc).sendKeys(user);

public void setPassword(String pwd)

driver.findElement(txt_password_loc).sendKeys(pwd);

public void clickLogin()

driver.findElement(btn_login_loc).click();

package day47;

import java.util.List;
import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.support.FindBy;

import org.openqa.selenium.support.How;

import org.openqa.selenium.support.PageFactory;

public class LoginPage2 {

WebDriver driver;

//constructor

LoginPage2(WebDriver driver)

this.driver=driver;

PageFactory.initElements(driver,this); // MANDATORY

//Locators

//@FindBy(xpath="//input[@placeholder='Username']")

@FindBy(how=How.XPATH, using="//input[@placeholder='Username']")

WebElement txt_username;

@FindBy(xpath="//input[@placeholder='Password']")

WebElement txt_password;

@FindBy(xpath="//button[normalize-space()='Login']")

WebElement btn_login;
@FindBy(tagName="a")

List<WebElement> links;

//Action methods

public void setUserName(String user)

txt_username.sendKeys(user);

public void setPassword(String pwd)

txt_password.sendKeys(pwd);

public void clickLogin()

btn_login.click();

package day47;

import java.time.Duration;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

import org.testng.Assert;
import org.testng.annotations.AfterClass;

import org.testng.annotations.BeforeClass;

import org.testng.annotations.Test;

public class LoginTest {

WebDriver driver;

@BeforeClass

void setup()

driver=new ChromeDriver();

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

driver.get("https://opensource-demo.orangehrmlive.com/web/index.php/auth/
login");

driver.manage().window().maximize();

@Test

void testLogin()

LoginPage2 lp=new LoginPage2(driver);

lp.setUserName("Admin");

lp.setPassword("admin123");

lp.clickLogin();

Assert.assertEquals(driver.getTitle(),"OrangeHRM");

@AfterClass
void tearDown()

driver.quit();

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">

<suite name="Suite">

<test thread-count="5" name="Test">

<classes>

<class name="day47.LoginTest"/>

</classes>

</test> <!-- Test -->

</suite> <!-- Suite -->

package day24;

import java.time.Duration;

import java.util.List;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;

import io.github.bonigarcia.wdm.WebDriverManager;

public class HandleCheckboxes {


public static void main(String[] args) throws InterruptedException {

WebDriverManager.chromedriver().setup();

WebDriver driver=new ChromeDriver();

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

driver.get("https://itera-qa.azurewebsites.net/home/automation");

driver.manage().window().maximize();

//select specific one checkbox

//driver.findElement(By.xpath("//input[@id='monday']")).click();

//total number of checkboxes

List<WebElement> checkboxes=driver.findElements(By.xpath("//input[@class='form-
check-input' and @type='checkbox']"));

System.out.println("Total number of checkboxes:"+checkboxes.size()); //7

//Select all the checkboxes

/*for(int i=0;i<checkboxes.size();i++)

checkboxes.get(i).click();

}*/

/*for(WebElement chkbox:checkboxes)

chkbox.click();

}*/
//Select last 2 checkboxes

// total Number of checkboxes-how many checkboxes to be selected= startign index

//7-3= 4 ( startign index)

/*for(int i=4;i<checkboxes.size();i++)

checkboxes.get(i).click();

}*/

//Select first 2 chekboxes

/*for(int i=0;i<3;i++)

checkboxes.get(i).click();

}*/

/*for(int i=0;i<checkboxes.size();i++)

if(i<2)

checkboxes.get(i).click();

}*/

//clear/Uncheck checkboxes

//Using normal for loop

for(int i=0;i<3;i++)

checkboxes.get(i).click();

}
Thread.sleep(4000);

/*for(int i=0;i<checkboxes.size();i++)

if(checkboxes.get(i).isSelected())

checkboxes.get(i).click();

}*/

for(WebElement chkbox:checkboxes)

if(chkbox.isSelected())

chkbox.click();

package day24;

import java.time.Duration;

import java.util.List;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;

import io.github.bonigarcia.wdm.WebDriverManager;

public class HandleDropDownWithoutSelectTag {

public static void main(String[] args) {

WebDriverManager.chromedriver().setup();

WebDriver driver=new ChromeDriver();

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

driver.get("https://www.jquery-az.com/boots/demo.php?ex=63.0_2");

driver.manage().window().maximize();

//clicking on the dropdown

driver.findElement(By.xpath("//
button[contains(@class,'multiselect')]")).click();

List<WebElement>
options=driver.findElements(By.xpath("//ul[contains(@class,multiselect)]//
label"));

//find total number of options

System.out.println("Total number of options:"+options.size());

//print all the options from dropdown

//using normal for loop


/*for(int i=0;i<options.size();i++)

System.out.println(options.get(i).getText());

}*/

//select options from dropdown

/*for(int i=0;i<options.size();i++)

String option=options.get(i).getText();

if(option.equals("Java") || option.equals("Python"))

options.get(i).click();

}*/

for(WebElement option:options)

String text=option.getText();

if(text.equals("Java") || text.equals("Python"))

option.click();

}
package day24;

import java.time.Duration;

import java.util.List;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.support.ui.Select;

import io.github.bonigarcia.wdm.WebDriverManager;

import io.opentelemetry.exporter.logging.SystemOutLogExporter;

public class HandleDropDownwithSelectTag {

public static void main(String[] args) {

WebDriverManager.chromedriver().setup();

WebDriver driver=new ChromeDriver();

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

driver.get("https://phppot.com/demo/jquery-dependent-dropdown-list-countries-
and-states/");

driver.manage().window().maximize();

WebElement drpCountryEle=driver.findElement(By.xpath("//select[@id='country-
list']"));

Select drpCountry=new Select(drpCountryEle);


//1) Selecting an option from teh dropdown

//drpCountry.selectByVisibleText("USA");

//drpCountry.selectByValue("4"); // use this only if value attribute is present


for option tag

//drpCountry.selectByIndex(3); //France

// 2) Find total options in dropdown

List<WebElement> options=drpCountry.getOptions();

System.out.println("total number of options:"+options.size());

//3) print options in console window

/*for(int i=0;i<options.size();i++)

System.out.println(options.get(i).getText());

}*/

//using enhanced loop

for(WebElement op:options)

System.out.println(op.getText());

<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>CucumberDemo</groupId>
<artifactId>CucumberDemo</artifactId>

<version>0.0.1-SNAPSHOT</version>

<dependencies>

<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java --
>

<dependency>

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

<artifactId>selenium-java</artifactId>

<version>4.20.0</version>

</dependency>

<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-java -->

<dependency>

<groupId>io.cucumber</groupId>

<artifactId>cucumber-java</artifactId>

<version>7.17.0</version>

</dependency>

<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-junit -->

<dependency>

<groupId>io.cucumber</groupId>

<artifactId>cucumber-junit</artifactId>

<version>7.14.1</version>

<scope>test</scope>

</dependency>

</dependencies>
</project>

package stepsDefinitions;

import io.cucumber.java.en.*;

import java.time.Duration;

import org.junit.Assert;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

public class Steps {

WebDriver driver;

@Given("the user is on the nopCommerce login page")

public void navigateToLoginPage() {

driver=new ChromeDriver();

driver.get("https://demo.nopcommerce.com/");

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

driver.manage().window().maximize();

driver.findElement(By.xpath("//a[normalize-space()='Log in']")).click();

@When("the user enters valid credentials \\(username: {string}, password:


{string})")

public void the_user_enters_valid_credentials_username_password(String user,


String pwd) {
driver.findElement(By.xpath("//input[@id='Email']")).sendKeys(user);

driver.findElement(By.xpath("//input[@id='Password']")).sendKeys(pwd);

@When("the user clicks on the Login button")

public void the_user_clicks_on_the_login_button() {

driver.findElement(By.xpath("//button[normalize-space()='Log in']")).click();

@Then("the user should be redirected to the My Account page")

public void the_user_should_be_redirected_to_the_my_account_page() {

boolean status=driver.findElement(By.xpath("//a[@class='ico-
account']")).isDisplayed();

Assert.assertEquals(status,true);

@Then("the user should see a welcome message")

public void the_user_should_see_a_welcome_message() {

boolean welcometext=driver.findElement(By.xpath("//h2[normalize-space()='Welcome
to our store']")).isDisplayed();

Assert.assertEquals(welcometext,true);

driver.quit();

package testRunner;
import org.junit.runner.RunWith;

import io.cucumber.junit.Cucumber;

import io.cucumber.junit.CucumberOptions;

@RunWith(Cucumber.class)

@CucumberOptions(features= {".//features/login.feature"},
glue="stepsDefinitions")

public class TestRun {

<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>opencart_cucumber_framework</groupId>

<artifactId>opencart_cucumber_framework</artifactId>

<version>0.0.1-SNAPSHOT</version>

<packaging>jar</packaging>

<name>opencart_cucumber_framework</name>

<url>http://maven.apache.org</url>

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

</properties>

<build>
<pluginManagement>

<plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-compiler-plugin</artifactId>

<version>3.11.0</version>

</plugin>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-surefire-plugin</artifactId>

<version>3.1.2</version>

</plugin>

</plugins>

</pluginManagement>

</build>

<dependencies>

<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java --
>

<dependency>

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

<artifactId>selenium-java</artifactId>

<version>4.15.0</version>

</dependency>

<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-junit -->

<dependency>

<groupId>io.cucumber</groupId>
<artifactId>cucumber-junit</artifactId>

<version>7.14.1</version>

<scope>test</scope>

</dependency>

<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-java -->

<dependency>

<groupId>io.cucumber</groupId>

<artifactId>cucumber-java</artifactId>

<version>7.14.1</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->

<dependency>

<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-core</artifactId>

<version>2.20.0</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api -->

<dependency>

<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-api</artifactId>

<version>2.20.0</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->

<dependency>

<groupId>org.apache.poi</groupId>

<artifactId>poi</artifactId>
<version>5.2.3</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->

<dependency>

<groupId>org.apache.poi</groupId>

<artifactId>poi-ooxml</artifactId>

<version>5.2.3</version>

</dependency>

<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->

<dependency>

<groupId>commons-io</groupId>

<artifactId>commons-io</artifactId>

<version>2.11.0</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->

<dependency>

<groupId>org.apache.commons</groupId>

<artifactId>commons-lang3</artifactId>

<version>3.12.0</version>

</dependency>

<!-- https://mvnrepository.com/artifact/com.aventstack/extentreports-cucumber4-
adapter -->

<dependency>

<groupId>tech.grasshopper</groupId>

<artifactId>extentreports-cucumber7-adapter</artifactId>

<version>1.14.0</version>
</dependency>

</dependencies>

</project>

package factory;

import java.io.FileReader;

import java.io.IOException;

import java.net.URL;

import java.time.Duration;

import java.util.Properties;

import org.apache.commons.lang3.RandomStringUtils;

import org.apache.logging.log4j.LogManager;

import org.apache.logging.log4j.Logger;

import org.openqa.selenium.Platform;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.edge.EdgeDriver;

import org.openqa.selenium.remote.DesiredCapabilities;

import org.openqa.selenium.remote.RemoteWebDriver;

public class BaseClass {

static WebDriver driver;

static Properties p;

static Logger logger;


public static WebDriver initilizeBrowser() throws IOException

if(getProperties().getProperty("execution_env").equalsIgnoreCase("remote"))

DesiredCapabilities capabilities = new DesiredCapabilities();

//os

if (getProperties().getProperty("os").equalsIgnoreCase("windows")) {

capabilities.setPlatform(Platform.WIN11);

} else if (getProperties().getProperty("os").equalsIgnoreCase("mac")) {

capabilities.setPlatform(Platform.MAC);

} else {

System.out.println("No matching OS..");

//browser

switch (getProperties().getProperty("browser").toLowerCase()) {

case "chrome":

capabilities.setBrowserName("chrome");

break;

case "edge":

capabilities.setBrowserName("MicrosoftEdge");

break;

default:

System.out.println("No matching browser");

driver = new RemoteWebDriver(new


URL("http://localhost:4444/wd/hub"),capabilities);

}
else if(getProperties().getProperty("execution_env").equalsIgnoreCase("local"))

switch(getProperties().getProperty("browser").toLowerCase())

case "chrome":

driver=new ChromeDriver();

break;

case "edge":

driver=new EdgeDriver();

break;

default:

System.out.println("No matching browser");

driver=null;

driver.manage().deleteAllCookies();

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

driver.manage().timeouts().pageLoadTimeout(Duration.ofSeconds(5));

return driver;

public static WebDriver getDriver() {

return driver;

public static Properties getProperties() throws IOException

{
FileReader file=new FileReader(System.getProperty("user.dir")+"\\src\\test\\
resources\\config.properties");

p=new Properties();

p.load(file);

return p;

public static Logger getLogger()

logger=LogManager.getLogger(); //Log4j

return logger;

public static String randomeString()

String generatedString=RandomStringUtils.randomAlphabetic(5);

return generatedString;

public static String randomeNumber()

String generatedString=RandomStringUtils.randomNumeric(10);

return generatedString;

public static String randomAlphaNumeric()

String str=RandomStringUtils.randomAlphabetic(5);

String num=RandomStringUtils.randomNumeric(10);
return str+num;

package pageObjects;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.support.FindBy;

public class AccountRegistrationPage extends BasePage {

public AccountRegistrationPage(WebDriver driver) {

super(driver);

// Elements

@FindBy(name = "firstname")

WebElement txtFirstname;

@FindBy(name = "lastname")

WebElement txtLasttname;

@FindBy(name = "email")

WebElement txtEmail;

@FindBy(name = "telephone")

WebElement txtTelephone;
@FindBy(name = "password")

WebElement txtPassword;

@FindBy(name = "confirm")

WebElement txtConfirmPassword;

@FindBy(name = "agree")

WebElement chkdPolicy;

@FindBy(xpath = "//input[@value='Continue']")

WebElement btnContinue;

@FindBy(xpath = "//h1[normalize-space()='Your Account Has Been Created!']")

WebElement msgConfirmation;

public void setFirstName(String fname) {

txtFirstname.sendKeys(fname);

public void setLastName(String lname) {

txtLasttname.sendKeys(lname);

public void setEmail(String email) {

txtEmail.sendKeys(email);

}
public void setTelephone(String tel) {

txtTelephone.sendKeys(tel);

public void setPassword(String pwd) {

txtPassword.sendKeys(pwd);

public void setConfirmPassword(String pwd) {

txtConfirmPassword.sendKeys(pwd);

public void setPrivacyPolicy() {

chkdPolicy.click();

public void clickContinue() {

btnContinue.click();

public String getConfirmationMsg() {

try {

return (msgConfirmation.getText());

} catch (Exception e) {

return (e.getMessage());
}

package pageObjects;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.support.PageFactory;

public class BasePage {

WebDriver driver;

public BasePage(WebDriver driver)

this.driver=driver;

PageFactory.initElements(driver,this);

package pageObjects;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.support.FindBy;

import org.openqa.selenium.support.ui.Select;
public class CheckoutPage extends BasePage{

public CheckoutPage(WebDriver driver)

super(driver);

@FindBy(xpath="//input[@id='input-payment-firstname']")

WebElement txtfirstName;

@FindBy(xpath="//input[@id='input-payment-lastname']")

WebElement txtlastName;

@FindBy(xpath="//input[@id='input-payment-address-1']")

WebElement txtaddress1;

@FindBy(xpath="//input[@id='input-payment-address-2']")

WebElement txtaddress2;

@FindBy(xpath="//input[@id='input-payment-city']")

WebElement txtcity;

@FindBy(xpath="//input[@id='input-payment-postcode']")

WebElement txtpin;

@FindBy(xpath="//select[@id='input-payment-country']")

WebElement drpCountry;

@FindBy(xpath="//select[@id='input-payment-zone']")
WebElement drpState;

@FindBy(xpath="//input[@id='button-payment-address']")

WebElement btncontinueBillingAddress;

@FindBy(xpath="//input[@id='button-shipping-address']")

WebElement btncontinueDeliveryAddress;

@FindBy(xpath="//textarea[@name='comment']")

WebElement txtDeliveryMethod;

@FindBy(xpath="//input[@id='button-shipping-method']")

WebElement btncontinueShippingAddress;

@FindBy(xpath="//input[@name='agree']")

WebElement chkboxTerms;

@FindBy(xpath="//input[@id='button-payment-method']")

WebElement btncontinuePaymentMethod;

@FindBy(xpath="//strong[text()='Total:']//following::td")

WebElement lblTotalPrice;

@FindBy(xpath="//input[@id='button-confirm']")

WebElement btnConfOrder;

@FindBy(xpath="//*[@id='content']/h1")

WebElement lblOrderConMsg;

public void setfirstName(String firstName) {


txtfirstName.sendKeys(firstName);

public void setlastName(String lastName) {

txtlastName.sendKeys(lastName);

public void setaddress1(String address1) {

txtaddress1.sendKeys(address1);

public void setaddress2(String address2) {

txtaddress2.sendKeys(address2);

public void setcity(String city) {

txtcity.sendKeys(city);

public void setpin(String pin) {

txtpin.sendKeys(pin);

public void setCountry(String Country) {

new Select(drpCountry).selectByVisibleText(Country);

public void setState(String State) {

new Select(drpState).selectByVisibleText(State);

}
public void clickOnContinueAfterBillingAddress()

btncontinueBillingAddress.click();

public void clickOnContinueAfterDeliveryAddress()

btncontinueDeliveryAddress.click();

public void setDeliveryMethodComment(String deliverymsg)

txtDeliveryMethod.sendKeys(deliverymsg);

public void clickOnContinueAfterDeliveryMethod()

btncontinueShippingAddress.click();

public void selectTermsAndConditions()

chkboxTerms.click();

public void clickOnContinueAfterPaymentMethod()

btncontinuePaymentMethod.click();
}

public String getTotalPriceBeforeConfOrder()

return lblTotalPrice.getText(); //$207.00

public void clickOnConfirmOrder() {

btnConfOrder.click();

public boolean isOrderPlaced() throws InterruptedException

try

driver.switchTo().alert().accept();

Thread.sleep(2000);

btnConfOrder.click();

Thread.sleep(3000);

if(lblOrderConMsg.getText().equals("Your order has been placed!"))

return true;

else

return false;

}catch(Exception e)

return false;

}
}

package pageObjects;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.support.FindBy;

public class HomePage extends BasePage {

public HomePage(WebDriver driver) {

super(driver);

// Elements

@FindBy(xpath = "//span[text()='My Account']")

WebElement lnkMyaccount;

@FindBy(linkText = "Register")

WebElement lnkRegister;

@FindBy(linkText = "Login") // Login link added in step6

WebElement linkLogin;

@FindBy(xpath="//input[@placeholder='Search']") //For Search Product Test

WebElement txtSearchbox;

@FindBy(xpath="//div[@id='search']//button[@type='button']") //For Search


Product Test
WebElement btnSearch;

// Action Methods

public void clickMyAccount() {

lnkMyaccount.click();

public void clickRegister() {

lnkRegister.click();

public void clickLogin() // added in step6

linkLogin.click();

public void enterProductName(String pName) //For Search Product Test

txtSearchbox.sendKeys(pName);

public void clickSearch() //For Search Product Test

btnSearch.click();

package pageObjects;
import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.support.FindBy;

public class LoginPage extends BasePage {

public LoginPage(WebDriver driver) {

super(driver);

@FindBy(xpath = "//input[@id='input-email']")

WebElement txtEmailAddress;

@FindBy(xpath = "//input[@id='input-password']")

WebElement txtPassword;

@FindBy(xpath = "//input[@value='Login']")

WebElement btnLogin;

public void setEmail(String email) {

txtEmailAddress.sendKeys(email);

public void setPassword(String pwd) {

txtPassword.sendKeys(pwd);

public void clickLogin() {

btnLogin.click();

}
}

package pageObjects;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.support.FindBy;

public class MyAccountPage extends BasePage {

public MyAccountPage(WebDriver driver) {

super(driver);

@FindBy(xpath = "//h2[text()='My Account']") // MyAccount Page heading

WebElement msgHeading;

@FindBy(xpath = "//div[@class='list-group']//a[text()='Logout']")

WebElement lnkLogout;

public boolean isMyAccountPageExists() // MyAccount Page heading display


status

try {

return (msgHeading.isDisplayed());

} catch (Exception e) {

return (false);

}
public void clickLogout() {

lnkLogout.click();

package pageObjects;

import java.util.List;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.support.FindBy;

public class SearchPage extends BasePage

WebDriver driver;

public SearchPage(WebDriver driver)

super(driver);

@FindBy(xpath="//*[@id='content']/div[3]//img")

List<WebElement> searchProducts;

@FindBy(xpath="//input[@id='input-quantity']")

WebElement txtquantity;
@FindBy(xpath="//button[@id='button-cart']")

WebElement btnaddToCart;

@FindBy(xpath="//div[contains(text(),'Success: You have added')]")

WebElement cnfMsg;

public boolean isProductExist(String productName)

boolean flag=false;

for(WebElement product:searchProducts)

if(product.getAttribute("title").equals(productName))

flag=true;

break;

return flag;

public void selectProduct(String productName)

for(WebElement product:searchProducts)

if(product.getAttribute("title").equals(productName))

product.click();
}

public void setQuantity(String qty)

txtquantity.clear();

txtquantity.sendKeys(qty);

public void addToCart()

btnaddToCart.click();

public boolean checkConfMsg()

try

return cnfMsg.isDisplayed();

catch(Exception e)

return false;

}
package pageObjects;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.support.FindBy;

public class ShoppingCartPage extends BasePage

public ShoppingCartPage(WebDriver driver)

super(driver);

//@FindBy(xpath="//button[@aria-expanded='false']")

@FindBy(xpath="//div[@id='cart']")

WebElement btnItems;

@FindBy(xpath="//strong[normalize-space()='View Cart']")

WebElement lnkViewCart;

@FindBy(xpath="//*[@id='content']/div[2]/div/table//strong[text()='Total:']//
following::td")

WebElement lblTotalPrice; //$246.40

@FindBy(xpath="//a[text()='Checkout']")

WebElement btnCheckout;

public void clickItemsToNavigateToCart()

btnItems.click();
}

public void clickViewCart()

lnkViewCart.click();

public String getTotalPrice()

return lblTotalPrice.getText();

public void clickOnCheckout()

btnCheckout.click();

package stepDefinitions;

import java.io.IOException;

import java.util.Properties;

import org.openqa.selenium.OutputType;

import org.openqa.selenium.TakesScreenshot;

import org.openqa.selenium.WebDriver;

import factory.BaseClass;

import io.cucumber.java.After;

import io.cucumber.java.AfterStep;
import io.cucumber.java.Before;

import io.cucumber.java.Scenario;

public class Hooks {

WebDriver driver;

Properties p;

@Before

public void setup() throws IOException

driver=BaseClass.initilizeBrowser();

p=BaseClass.getProperties();

driver.get(p.getProperty("appURL"));

driver.manage().window().maximize();

@After

public void tearDown(Scenario scenario) {

driver.quit();

@AfterStep

public void addScreenshot(Scenario scenario) {

// this is for cucumber junit report


if(scenario.isFailed()) {

TakesScreenshot ts=(TakesScreenshot) driver;

byte[] screenshot=ts.getScreenshotAs(OutputType.BYTES);

scenario.attach(screenshot, "image/png",scenario.getName());

package stepDefinitions;

import java.util.HashMap;

import java.util.List;

import org.junit.Assert;

import org.openqa.selenium.WebDriver;

import factory.BaseClass;

import io.cucumber.java.en.Given;

import io.cucumber.java.en.Then;

import io.cucumber.java.en.When;

import pageObjects.HomePage;

import pageObjects.LoginPage;

import pageObjects.MyAccountPage;

import utilities.DataReader;

public class LoginSteps {


WebDriver driver;

HomePage hp;

LoginPage lp;

MyAccountPage macc;

List<HashMap<String, String>> datamap; //Data driven

@Given("the user navigates to login page")

public void user_navigate_to_login_page() {

BaseClass.getLogger().info("Goto my account-->Click on Login.. ");

hp=new HomePage(BaseClass.getDriver());

hp.clickMyAccount();

hp.clickLogin();

@When("user enters email as {string} and password as {string}")

public void user_enters_email_as_and_password_as(String email, String pwd) {

BaseClass.getLogger().info("Entering email and password.. ");

lp=new LoginPage(BaseClass.getDriver());

lp.setEmail(email);

lp.setPassword(pwd);

@When("the user clicks on the Login button")

public void click_on_login_button() {

lp.clickLogin();
BaseClass.getLogger().info("clicked on login button...");

@Then("the user should be redirected to the MyAccount Page")

public void user_navigates_to_my_account_page() {

macc=new MyAccountPage(BaseClass.getDriver());

boolean targetpage=macc.isMyAccountPageExists();

Assert.assertEquals(targetpage, true);

//******* Data Driven test **************

@Then("the user should be redirected to the MyAccount Page by passing email and
password with excel row {string}")

public void
check_user_navigates_to_my_account_page_by_passing_email_and_password_with_excel
_data(String rows)

datamap=DataReader.data(System.getProperty("user.dir")+"\\testData\\
Opencart_LoginData.xlsx", "Sheet1");

int index=Integer.parseInt(rows)-1;

String email= datamap.get(index).get("username");

String pwd= datamap.get(index).get("password");

String exp_res= datamap.get(index).get("res");

lp=new LoginPage(BaseClass.getDriver());

lp.setEmail(email);

lp.setPassword(pwd);
lp.clickLogin();

macc=new MyAccountPage(BaseClass.getDriver());

try

boolean targetpage=macc.isMyAccountPageExists();

System.out.println("target page: "+ targetpage);

if(exp_res.equals("Valid"))

if(targetpage==true)

MyAccountPage myaccpage=new MyAccountPage(BaseClass.getDriver());

myaccpage.clickLogout();

Assert.assertTrue(true);

else

Assert.assertTrue(false);

if(exp_res.equals("Invalid"))

if(targetpage==true)

macc.clickLogout();

Assert.assertTrue(false);

else

Assert.assertTrue(true);
}

catch(Exception e)

Assert.assertTrue(false);

package stepDefinitions;

import java.util.Map;

import org.junit.Assert;

import org.openqa.selenium.WebDriver;

import factory.BaseClass;

import io.cucumber.datatable.DataTable;

import io.cucumber.java.en.Given;

import io.cucumber.java.en.Then;

import io.cucumber.java.en.When;

import pageObjects.AccountRegistrationPage;

import pageObjects.HomePage;

import pageObjects.LoginPage;

public class RegistrationSteps {


WebDriver driver;

HomePage hp;

LoginPage lp;

AccountRegistrationPage regpage;

@Given("the user navigates to Register Account page")

public void user_navigates_to_register_account_page() {

hp=new HomePage(BaseClass.getDriver());

hp.clickMyAccount();

hp.clickRegister();

@When("the user enters the details into below fields")

public void user_enters_the_details_into_below_fields(DataTable dataTable) {

Map<String, String> dataMap = dataTable.asMap(String.class,String.class);

regpage=new AccountRegistrationPage(BaseClass.getDriver());

regpage.setFirstName(dataMap.get("firstName"));

regpage.setLastName(dataMap.get("lastName"));

regpage.setEmail(BaseClass.randomAlphaNumeric()+"@gmail.com");

regpage.setTelephone(dataMap.get("telephone"));

regpage.setPassword(dataMap.get("password"));

regpage.setConfirmPassword(dataMap.get("password"));

}
@When("the user selects Privacy Policy")

public void user_selects_privacy_policy() {

regpage.setPrivacyPolicy();

@When("the user clicks on Continue button")

public void user_clicks_on_continue_button() {

regpage.clickContinue();

@Then("the user account should get created successfully")

public void user_account_should_get_created_successfully() {

String confmsg=regpage.getConfirmationMsg();

Assert.assertEquals(confmsg, "Your Account Has Been Created!");

package testRunner;

import org.junit.runner.RunWith;

import io.cucumber.junit.Cucumber;

import io.cucumber.junit.CucumberOptions;

@RunWith(Cucumber.class)

@CucumberOptions(

//features= {".//Features/"},

//features= {".//Features/Login.feature"},

//features= {".//Features/LoginDDTExcel.feature"},
features= {".//Features/Login.feature",".//Features/Registration.feature"},

//features= {"@target/rerun.txt"},

glue="stepDefinitions",

plugin= {"pretty", "html:reports/myreport.html",

"rerun:target/rerun.txt",

"com.aventstack.extentreports.cucumber.adapter.ExtentCucumberAdapter:"

},

dryRun=false, // checks mapping between scenario steps and step definition


methods

monochrome=true, // to avoid junk characters in output

publish=true // to publish report in cucumber server

//tags="@sanity" // this will execute scenarios tagged with @sanity

//tags="@regression"

//tags="@sanity and @regression" //Scenarios tagged with both @sanity and


@regression

//tags="@sanity and not @regression" //Scenarios tagged with @sanity but not
tagged with @regression

//tags="@sanity or @regression" //Scenarios tagged with either @sanity or


@regression

public class TestRunner {

package utilities;

import java.io.FileInputStream;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;
import org.apache.poi.ss.usermodel.Cell;

import org.apache.poi.ss.usermodel.Row;

import org.apache.poi.xssf.usermodel.XSSFSheet;

import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class DataReader {

public static HashMap<String, String> storeValues = new HashMap();

public static List<HashMap<String, String>> data(String filepath, String


sheetName) {

List<HashMap<String, String>> mydata = new ArrayList<>();

try {

FileInputStream fs = new FileInputStream(filepath);

XSSFWorkbook workbook = new XSSFWorkbook(fs);

XSSFSheet sheet = workbook.getSheet(sheetName);

Row HeaderRow = sheet.getRow(0);

for (int i = 1; i < sheet.getPhysicalNumberOfRows(); i++)

Row currentRow = sheet.getRow(i);

HashMap<String, String> currentHash = new HashMap<String, String>();

for (int j = 0; j < currentRow.getPhysicalNumberOfCells(); j++)

Cell currentCell = currentRow.getCell(j);

switch (currentCell.getCellType())

case STRING:

currentHash.put(HeaderRow.getCell(j).getStringCellValue(),
currentCell.getStringCellValue());
break;

mydata.add(currentHash);

fs.close();

} catch (Exception e) {

e.printStackTrace();

return mydata;

<?xml version="1.0" encoding="UTF-8"?>

<Configuration status="WARN">

<Properties>

<Property name="basePath">./logs</Property>

</Properties>

<Appenders>

<Console name="Console" target="SYSTEM_OUT">

<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>

</Console>

<RollingFile name="File" fileName="${basePath}/automation.log" filePattern="$


{basePath}/automation-%d{yyyy-MM-dd}.log">

<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level - %msg%n"/>

<SizeBasedTriggeringPolicy size="50000" />

</RollingFile>
</Appenders>

<Loggers>

<Root level="All"> <!-- Here you can use multiple log levels All <
Trace < Debug < Info < Warn < Error < Fatal < Off -->

<AppenderRef ref="File"/> <!-- <AppenderRef ref="Console"/> -->

</Root>

</Loggers>

</Configuration>

file:Features/Login.feature:4

<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>opencart_cucumber_framework</groupId>

<artifactId>opencart_cucumber_framework</artifactId>

<version>0.0.1-SNAPSHOT</version>

<packaging>jar</packaging>

<name>opencart_cucumber_framework</name>

<url>http://maven.apache.org</url>

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

</properties>

<build>
<pluginManagement>

<plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-compiler-plugin</artifactId>

<version>3.11.0</version>

</plugin>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-surefire-plugin</artifactId>

<version>3.1.2</version>

</plugin>

</plugins>

</pluginManagement>

</build>

<dependencies>

<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java --
>

<dependency>

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

<artifactId>selenium-java</artifactId>

<version>4.15.0</version>

</dependency>

<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-junit -->

<dependency>

<groupId>io.cucumber</groupId>
<artifactId>cucumber-junit</artifactId>

<version>7.14.1</version>

<scope>test</scope>

</dependency>

<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-java -->

<dependency>

<groupId>io.cucumber</groupId>

<artifactId>cucumber-java</artifactId>

<version>7.14.1</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->

<dependency>

<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-core</artifactId>

<version>2.20.0</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api -->

<dependency>

<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-api</artifactId>

<version>2.20.0</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->

<dependency>

<groupId>org.apache.poi</groupId>

<artifactId>poi</artifactId>
<version>5.2.3</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->

<dependency>

<groupId>org.apache.poi</groupId>

<artifactId>poi-ooxml</artifactId>

<version>5.2.3</version>

</dependency>

<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->

<dependency>

<groupId>commons-io</groupId>

<artifactId>commons-io</artifactId>

<version>2.11.0</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->

<dependency>

<groupId>org.apache.commons</groupId>

<artifactId>commons-lang3</artifactId>

<version>3.12.0</version>

</dependency>

<!-- https://mvnrepository.com/artifact/com.aventstack/extentreports-cucumber4-
adapter -->

<dependency>

<groupId>tech.grasshopper</groupId>

<artifactId>extentreports-cucumber7-adapter</artifactId>

<version>1.14.0</version>
</dependency>

</dependencies>

</project>

-------------------------------------------------------------------------------

Test set: Account Registration

-------------------------------------------------------------------------------

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 7.746 s - in


Account Registration

-------------------------------------------------------------------------------

Test set: Login with Valid Credentials

-------------------------------------------------------------------------------

Tests run: 2, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 0.422 s <<<


FAILURE! - in Login with Valid Credentials

Login with Valid Credentials.Successful Login with Valid Credentials Time


elapsed: 0.422 s <<< ERROR!

java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)"


because the return value of "java.util.Properties.getProperty(String)" is null

at factory.BaseClass.initilizeBrowser(BaseClass.java:27)

at stepDefinitions.Hooks.setup(Hooks.java:24)

Login with Valid Credentials.Successful Login with Valid Credentials Time


elapsed: 0 s <<< ERROR!

java.lang.NullPointerException: Cannot invoke


"org.openqa.selenium.WebDriver.quit()" because "this.driver" is null

at stepDefinitions.Hooks.tearDown(Hooks.java:37)

<?xml version="1.0" encoding="UTF-8"?>

<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-
plugin/xsd/surefire-test-report-3.0.xsd" version="3.0" name="Account
Registration" time="7.746" tests="1" errors="0" skipped="0" failures="0">

<properties>

<property name="java.specification.version" value="19"/>

<property name="sun.cpu.isalist" value="amd64"/>

<property name="sun.jnu.encoding" value="Cp1252"/>

<property name="java.class.path" value="C:\workspaces\16-June-2023batch\


opencart_sept2023_cucumber\target\test-classes;C:\workspaces\16-June-2023batch\
opencart_sept2023_cucumber\target\classes;C:\Users\pavan\.m2\repository\org\
seleniumhq\selenium\selenium-java\4.15.0\selenium-java-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-api\4.15.0\selenium-api-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-
chrome-driver\4.15.0\selenium-chrome-driver-4.15.0.jar;C:\Users\pavan\.m2\
repository\com\google\auto\service\auto-service-annotations\1.1.1\auto-service-
annotations-1.1.1.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-chromium-driver\4.15.0\selenium-chromium-driver-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-json\4.15.0\selenium-json-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-
manager\4.15.0\selenium-manager-4.15.0.jar;C:\Users\pavan\.m2\repository\org\
seleniumhq\selenium\selenium-devtools-v117\4.15.0\selenium-devtools-v117-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-
devtools-v118\4.15.0\selenium-devtools-v118-4.15.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-devtools-v119\4.15.0\selenium-
devtools-v119-4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-devtools-v85\4.15.0\selenium-devtools-v85-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-edge-driver\4.15.0\
selenium-edge-driver-4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-firefox-driver\4.15.0\selenium-firefox-driver-4.15.0.jar;C:\
Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-http\4.15.0\
selenium-http-4.15.0.jar;C:\Users\pavan\.m2\repository\dev\failsafe\failsafe\
3.3.2\failsafe-3.3.2.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-ie-driver\4.15.0\selenium-ie-driver-4.15.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-remote-driver\4.15.0\selenium-
remote-driver-4.15.0.jar;C:\Users\pavan\.m2\repository\com\google\guava\guava\
32.1.2-jre\guava-32.1.2-jre.jar;C:\Users\pavan\.m2\repository\com\google\guava\
failureaccess\1.0.1\failureaccess-1.0.1.jar;C:\Users\pavan\.m2\repository\com\
google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\
listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;C:\Users\
pavan\.m2\repository\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;C:\
Users\pavan\.m2\repository\org\checkerframework\checker-qual\3.33.0\checker-
qual-3.33.0.jar;C:\Users\pavan\.m2\repository\com\google\errorprone\
error_prone_annotations\2.18.0\error_prone_annotations-2.18.0.jar;C:\Users\
pavan\.m2\repository\com\google\j2objc\j2objc-annotations\2.8\j2objc-
annotations-2.8.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\
opentelemetry-api\1.28.0\opentelemetry-api-1.28.0.jar;C:\Users\pavan\.m2\
repository\io\opentelemetry\opentelemetry-context\1.28.0\opentelemetry-context-
1.28.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-
exporter-logging\1.28.0\opentelemetry-exporter-logging-1.28.0.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-metrics\1.28.0\
opentelemetry-sdk-metrics-1.28.0.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-extension-incubator\1.28.0-alpha\opentelemetry-
extension-incubator-1.28.0-alpha.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-sdk-logs\1.28.0\opentelemetry-sdk-logs-
1.28.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-
common\1.28.0\opentelemetry-sdk-common-1.28.0.jar;C:\Users\pavan\.m2\repository\
io\opentelemetry\opentelemetry-sdk-extension-autoconfigure-spi\1.28.0\
opentelemetry-sdk-extension-autoconfigure-spi-1.28.0.jar;C:\Users\pavan\.m2\
repository\io\opentelemetry\opentelemetry-sdk-extension-autoconfigure\1.28.0\
opentelemetry-sdk-extension-autoconfigure-1.28.0.jar;C:\Users\pavan\.m2\
repository\io\opentelemetry\opentelemetry-api-events\1.28.0-alpha\opentelemetry-
api-events-1.28.0-alpha.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\
opentelemetry-sdk-trace\1.28.0\opentelemetry-sdk-trace-1.28.0.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk\1.28.0\opentelemetry-
sdk-1.28.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-
semconv\1.28.0-alpha\opentelemetry-semconv-1.28.0-alpha.jar;C:\Users\pavan\.m2\
repository\net\bytebuddy\byte-buddy\1.14.5\byte-buddy-1.14.5.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-os\4.15.0\selenium-os-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\apache\commons\commons-exec\1.3\
commons-exec-1.3.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-safari-driver\4.15.0\selenium-safari-driver-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-support\4.15.0\selenium-
support-4.15.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\cucumber-junit\
7.14.1\cucumber-junit-7.14.1.jar;C:\Users\pavan\.m2\repository\org\apiguardian\
apiguardian-api\1.1.2\apiguardian-api-1.1.2.jar;C:\Users\pavan\.m2\repository\
io\cucumber\cucumber-core\7.14.1\cucumber-core-7.14.1.jar;C:\Users\pavan\.m2\
repository\io\cucumber\cucumber-gherkin\7.14.1\cucumber-gherkin-7.14.1.jar;C:\
Users\pavan\.m2\repository\io\cucumber\cucumber-gherkin-messages\7.14.1\
cucumber-gherkin-messages-7.14.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\
gherkin\26.2.0\gherkin-26.2.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\
messages\22.0.0\messages-22.0.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\
tag-expressions\6.0.0\tag-expressions-6.0.0.jar;C:\Users\pavan\.m2\repository\
io\cucumber\cucumber-expressions\17.0.1\cucumber-expressions-17.0.1.jar;C:\
Users\pavan\.m2\repository\io\cucumber\datatable\7.14.1\datatable-7.14.1.jar;C:\
Users\pavan\.m2\repository\io\cucumber\cucumber-plugin\7.14.1\cucumber-plugin-
7.14.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\docstring\7.14.1\docstring-
7.14.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\html-formatter\20.4.0\html-
formatter-20.4.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\junit-xml-
formatter\0.2.0\junit-xml-formatter-0.2.0.jar;C:\Users\pavan\.m2\repository\io\
cucumber\ci-environment\10.0.0\ci-environment-10.0.0.jar;C:\Users\pavan\.m2\
repository\junit\junit\4.13.2\junit-4.13.2.jar;C:\Users\pavan\.m2\repository\
org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\pavan\.m2\
repository\io\cucumber\cucumber-java\7.14.1\cucumber-java-7.14.1.jar;C:\Users\
pavan\.m2\repository\org\apache\logging\log4j\log4j-core\2.20.0\log4j-core-
2.20.0.jar;C:\Users\pavan\.m2\repository\org\apache\logging\log4j\log4j-api\
2.20.0\log4j-api-2.20.0.jar;C:\Users\pavan\.m2\repository\org\apache\poi\poi\
5.2.3\poi-5.2.3.jar;C:\Users\pavan\.m2\repository\commons-codec\commons-codec\
1.15\commons-codec-1.15.jar;C:\Users\pavan\.m2\repository\org\apache\commons\
commons-collections4\4.4\commons-collections4-4.4.jar;C:\Users\pavan\.m2\
repository\org\apache\commons\commons-math3\3.6.1\commons-math3-3.6.1.jar;C:\
Users\pavan\.m2\repository\com\zaxxer\SparseBitSet\1.2\SparseBitSet-1.2.jar;C:\
Users\pavan\.m2\repository\org\apache\poi\poi-ooxml\5.2.3\poi-ooxml-
5.2.3.jar;C:\Users\pavan\.m2\repository\org\apache\poi\poi-ooxml-lite\5.2.3\poi-
ooxml-lite-5.2.3.jar;C:\Users\pavan\.m2\repository\org\apache\xmlbeans\xmlbeans\
5.1.1\xmlbeans-5.1.1.jar;C:\Users\pavan\.m2\repository\org\apache\commons\
commons-compress\1.21\commons-compress-1.21.jar;C:\Users\pavan\.m2\repository\
com\github\virtuald\curvesapi\1.07\curvesapi-1.07.jar;C:\Users\pavan\.m2\
repository\commons-io\commons-io\2.11.0\commons-io-2.11.0.jar;C:\Users\
pavan\.m2\repository\org\apache\commons\commons-lang3\3.12.0\commons-lang3-
3.12.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\extentreports-
cucumber7-adapter\1.14.0\extentreports-cucumber7-adapter-1.14.0.jar;C:\Users\
pavan\.m2\repository\com\aventstack\extentreports\5.1.0\extentreports-
5.1.0.jar;C:\Users\pavan\.m2\repository\io\reactivex\rxjava3\rxjava\3.1.6\
rxjava-3.1.6.jar;C:\Users\pavan\.m2\repository\org\reactivestreams\reactive-
streams\1.0.4\reactive-streams-1.0.4.jar;C:\Users\pavan\.m2\repository\org\
freemarker\freemarker\2.3.32\freemarker-2.3.32.jar;C:\Users\pavan\.m2\
repository\org\projectlombok\lombok\1.18.26\lombok-1.18.26.jar;C:\Users\
pavan\.m2\repository\com\google\code\gson\gson\2.10.1\gson-2.10.1.jar;C:\Users\
pavan\.m2\repository\tech\grasshopper\extent-pdf-report\2.12.0\extent-pdf-
report-2.12.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\cucumber-pdf-
report\2.14.0\cucumber-pdf-report-2.14.0.jar;C:\Users\pavan\.m2\repository\org\
apache\pdfbox\pdfbox\2.0.26\pdfbox-2.0.26.jar;C:\Users\pavan\.m2\repository\org\
apache\pdfbox\fontbox\2.0.26\fontbox-2.0.26.jar;C:\Users\pavan\.m2\repository\
org\knowm\xchart\xchart\3.8.0\xchart-3.8.0.jar;C:\Users\pavan\.m2\repository\de\
erichseifert\vectorgraphics2d\VectorGraphics2D\0.13\VectorGraphics2D-
0.13.jar;C:\Users\pavan\.m2\repository\de\rototor\pdfbox\graphics2d\0.30\
graphics2d-0.30.jar;C:\Users\pavan\.m2\repository\com\madgag\animated-gif-lib\
1.4\animated-gif-lib-1.4.jar;C:\Users\pavan\.m2\repository\org\yaml\snakeyaml\
2.0\snakeyaml-2.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\table-
layout\1.5.1\table-layout-1.5.1.jar;C:\Users\pavan\.m2\repository\tech\
grasshopper\rest-assured-cucumber-pdf-report\1.5.0\rest-assured-cucumber-pdf-
report-1.5.0.jar;C:\Users\pavan\.m2\repository\org\jsoup\jsoup\1.15.3\jsoup-
1.15.3.jar;C:\Users\pavan\.m2\repository\com\aventstack\klov-reporter\5.1.0\
klov-reporter-5.1.0.jar;C:\Users\pavan\.m2\repository\org\mongodb\mongodb-
driver\3.6.4\mongodb-driver-3.6.4.jar;C:\Users\pavan\.m2\repository\org\mongodb\
mongodb-driver-core\3.6.4\mongodb-driver-core-3.6.4.jar;C:\Users\pavan\.m2\
repository\org\mongodb\bson\3.6.4\bson-3.6.4.jar;C:\Users\pavan\.m2\repository\
org\apache\httpcomponents\httpclient\4.5.13\httpclient-4.5.13.jar;C:\Users\
pavan\.m2\repository\org\apache\httpcomponents\httpcore\4.4.13\httpcore-
4.4.13.jar;C:\Users\pavan\.m2\repository\commons-logging\commons-logging\1.2\
commons-logging-1.2.jar;C:\Users\pavan\.m2\repository\org\apache\httpcomponents\
httpmime\4.5.13\httpmime-4.5.13.jar;C:\Users\pavan\.m2\repository\tech\
grasshopper\htmlextentreporter\1.1.0\htmlextentreporter-1.1.0.jar;C:\Users\
pavan\.m2\repository\tech\grasshopper\extent-excel-report\1.4.0\extent-excel-
report-1.4.0.jar;"/>

<property name="java.vm.vendor" value="Oracle Corporation"/>

<property name="sun.arch.data.model" value="64"/>

<property name="user.variant" value=""/>

<property name="java.vendor.url" value="https://java.oracle.com/"/>

<property name="user.timezone" value="Asia/Calcutta"/>

<property name="os.name" value="Windows 11"/>

<property name="java.vm.specification.version" value="19"/>

<property name="sun.java.launcher" value="SUN_STANDARD"/>

<property name="user.country" value="US"/>


<property name="sun.boot.library.path" value="C:\Program Files\Java\jdk-19\
bin"/>

<property name="sun.java.command" value="C:\Users\pavan\AppData\Local\Temp\


surefire16513670564023703382\surefirebooter-20231208112952906_3.jar C:\Users\
pavan\AppData\Local\Temp\surefire16513670564023703382 2023-12-08T11-29-52_535-
jvmRun1 surefire-20231208112952906_1tmp surefire_0-20231208112952906_2tmp"/>

<property name="jdk.debug" value="release"/>

<property name="surefire.test.class.path" value="C:\workspaces\16-June-


2023batch\opencart_sept2023_cucumber\target\test-classes;C:\workspaces\16-June-
2023batch\opencart_sept2023_cucumber\target\classes;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-java\4.15.0\selenium-java-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-api\
4.15.0\selenium-api-4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-chrome-driver\4.15.0\selenium-chrome-driver-4.15.0.jar;C:\
Users\pavan\.m2\repository\com\google\auto\service\auto-service-annotations\
1.1.1\auto-service-annotations-1.1.1.jar;C:\Users\pavan\.m2\repository\org\
seleniumhq\selenium\selenium-chromium-driver\4.15.0\selenium-chromium-driver-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-json\
4.15.0\selenium-json-4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-manager\4.15.0\selenium-manager-4.15.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-devtools-v117\4.15.0\selenium-
devtools-v117-4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-devtools-v118\4.15.0\selenium-devtools-v118-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-devtools-v119\4.15.0\
selenium-devtools-v119-4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-devtools-v85\4.15.0\selenium-devtools-v85-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-edge-driver\4.15.0\
selenium-edge-driver-4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-firefox-driver\4.15.0\selenium-firefox-driver-4.15.0.jar;C:\
Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-http\4.15.0\
selenium-http-4.15.0.jar;C:\Users\pavan\.m2\repository\dev\failsafe\failsafe\
3.3.2\failsafe-3.3.2.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-ie-driver\4.15.0\selenium-ie-driver-4.15.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-remote-driver\4.15.0\selenium-
remote-driver-4.15.0.jar;C:\Users\pavan\.m2\repository\com\google\guava\guava\
32.1.2-jre\guava-32.1.2-jre.jar;C:\Users\pavan\.m2\repository\com\google\guava\
failureaccess\1.0.1\failureaccess-1.0.1.jar;C:\Users\pavan\.m2\repository\com\
google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\
listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;C:\Users\
pavan\.m2\repository\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;C:\
Users\pavan\.m2\repository\org\checkerframework\checker-qual\3.33.0\checker-
qual-3.33.0.jar;C:\Users\pavan\.m2\repository\com\google\errorprone\
error_prone_annotations\2.18.0\error_prone_annotations-2.18.0.jar;C:\Users\
pavan\.m2\repository\com\google\j2objc\j2objc-annotations\2.8\j2objc-
annotations-2.8.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\
opentelemetry-api\1.28.0\opentelemetry-api-1.28.0.jar;C:\Users\pavan\.m2\
repository\io\opentelemetry\opentelemetry-context\1.28.0\opentelemetry-context-
1.28.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-
exporter-logging\1.28.0\opentelemetry-exporter-logging-1.28.0.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-metrics\1.28.0\
opentelemetry-sdk-metrics-1.28.0.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-extension-incubator\1.28.0-alpha\opentelemetry-
extension-incubator-1.28.0-alpha.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-sdk-logs\1.28.0\opentelemetry-sdk-logs-
1.28.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-
common\1.28.0\opentelemetry-sdk-common-1.28.0.jar;C:\Users\pavan\.m2\repository\
io\opentelemetry\opentelemetry-sdk-extension-autoconfigure-spi\1.28.0\
opentelemetry-sdk-extension-autoconfigure-spi-1.28.0.jar;C:\Users\pavan\.m2\
repository\io\opentelemetry\opentelemetry-sdk-extension-autoconfigure\1.28.0\
opentelemetry-sdk-extension-autoconfigure-1.28.0.jar;C:\Users\pavan\.m2\
repository\io\opentelemetry\opentelemetry-api-events\1.28.0-alpha\opentelemetry-
api-events-1.28.0-alpha.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\
opentelemetry-sdk-trace\1.28.0\opentelemetry-sdk-trace-1.28.0.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk\1.28.0\opentelemetry-
sdk-1.28.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-
semconv\1.28.0-alpha\opentelemetry-semconv-1.28.0-alpha.jar;C:\Users\pavan\.m2\
repository\net\bytebuddy\byte-buddy\1.14.5\byte-buddy-1.14.5.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-os\4.15.0\selenium-os-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\apache\commons\commons-exec\1.3\
commons-exec-1.3.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-safari-driver\4.15.0\selenium-safari-driver-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-support\4.15.0\selenium-
support-4.15.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\cucumber-junit\
7.14.1\cucumber-junit-7.14.1.jar;C:\Users\pavan\.m2\repository\org\apiguardian\
apiguardian-api\1.1.2\apiguardian-api-1.1.2.jar;C:\Users\pavan\.m2\repository\
io\cucumber\cucumber-core\7.14.1\cucumber-core-7.14.1.jar;C:\Users\pavan\.m2\
repository\io\cucumber\cucumber-gherkin\7.14.1\cucumber-gherkin-7.14.1.jar;C:\
Users\pavan\.m2\repository\io\cucumber\cucumber-gherkin-messages\7.14.1\
cucumber-gherkin-messages-7.14.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\
gherkin\26.2.0\gherkin-26.2.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\
messages\22.0.0\messages-22.0.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\
tag-expressions\6.0.0\tag-expressions-6.0.0.jar;C:\Users\pavan\.m2\repository\
io\cucumber\cucumber-expressions\17.0.1\cucumber-expressions-17.0.1.jar;C:\
Users\pavan\.m2\repository\io\cucumber\datatable\7.14.1\datatable-7.14.1.jar;C:\
Users\pavan\.m2\repository\io\cucumber\cucumber-plugin\7.14.1\cucumber-plugin-
7.14.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\docstring\7.14.1\docstring-
7.14.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\html-formatter\20.4.0\html-
formatter-20.4.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\junit-xml-
formatter\0.2.0\junit-xml-formatter-0.2.0.jar;C:\Users\pavan\.m2\repository\io\
cucumber\ci-environment\10.0.0\ci-environment-10.0.0.jar;C:\Users\pavan\.m2\
repository\junit\junit\4.13.2\junit-4.13.2.jar;C:\Users\pavan\.m2\repository\
org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\pavan\.m2\
repository\io\cucumber\cucumber-java\7.14.1\cucumber-java-7.14.1.jar;C:\Users\
pavan\.m2\repository\org\apache\logging\log4j\log4j-core\2.20.0\log4j-core-
2.20.0.jar;C:\Users\pavan\.m2\repository\org\apache\logging\log4j\log4j-api\
2.20.0\log4j-api-2.20.0.jar;C:\Users\pavan\.m2\repository\org\apache\poi\poi\
5.2.3\poi-5.2.3.jar;C:\Users\pavan\.m2\repository\commons-codec\commons-codec\
1.15\commons-codec-1.15.jar;C:\Users\pavan\.m2\repository\org\apache\commons\
commons-collections4\4.4\commons-collections4-4.4.jar;C:\Users\pavan\.m2\
repository\org\apache\commons\commons-math3\3.6.1\commons-math3-3.6.1.jar;C:\
Users\pavan\.m2\repository\com\zaxxer\SparseBitSet\1.2\SparseBitSet-1.2.jar;C:\
Users\pavan\.m2\repository\org\apache\poi\poi-ooxml\5.2.3\poi-ooxml-
5.2.3.jar;C:\Users\pavan\.m2\repository\org\apache\poi\poi-ooxml-lite\5.2.3\poi-
ooxml-lite-5.2.3.jar;C:\Users\pavan\.m2\repository\org\apache\xmlbeans\xmlbeans\
5.1.1\xmlbeans-5.1.1.jar;C:\Users\pavan\.m2\repository\org\apache\commons\
commons-compress\1.21\commons-compress-1.21.jar;C:\Users\pavan\.m2\repository\
com\github\virtuald\curvesapi\1.07\curvesapi-1.07.jar;C:\Users\pavan\.m2\
repository\commons-io\commons-io\2.11.0\commons-io-2.11.0.jar;C:\Users\
pavan\.m2\repository\org\apache\commons\commons-lang3\3.12.0\commons-lang3-
3.12.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\extentreports-
cucumber7-adapter\1.14.0\extentreports-cucumber7-adapter-1.14.0.jar;C:\Users\
pavan\.m2\repository\com\aventstack\extentreports\5.1.0\extentreports-
5.1.0.jar;C:\Users\pavan\.m2\repository\io\reactivex\rxjava3\rxjava\3.1.6\
rxjava-3.1.6.jar;C:\Users\pavan\.m2\repository\org\reactivestreams\reactive-
streams\1.0.4\reactive-streams-1.0.4.jar;C:\Users\pavan\.m2\repository\org\
freemarker\freemarker\2.3.32\freemarker-2.3.32.jar;C:\Users\pavan\.m2\
repository\org\projectlombok\lombok\1.18.26\lombok-1.18.26.jar;C:\Users\
pavan\.m2\repository\com\google\code\gson\gson\2.10.1\gson-2.10.1.jar;C:\Users\
pavan\.m2\repository\tech\grasshopper\extent-pdf-report\2.12.0\extent-pdf-
report-2.12.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\cucumber-pdf-
report\2.14.0\cucumber-pdf-report-2.14.0.jar;C:\Users\pavan\.m2\repository\org\
apache\pdfbox\pdfbox\2.0.26\pdfbox-2.0.26.jar;C:\Users\pavan\.m2\repository\org\
apache\pdfbox\fontbox\2.0.26\fontbox-2.0.26.jar;C:\Users\pavan\.m2\repository\
org\knowm\xchart\xchart\3.8.0\xchart-3.8.0.jar;C:\Users\pavan\.m2\repository\de\
erichseifert\vectorgraphics2d\VectorGraphics2D\0.13\VectorGraphics2D-
0.13.jar;C:\Users\pavan\.m2\repository\de\rototor\pdfbox\graphics2d\0.30\
graphics2d-0.30.jar;C:\Users\pavan\.m2\repository\com\madgag\animated-gif-lib\
1.4\animated-gif-lib-1.4.jar;C:\Users\pavan\.m2\repository\org\yaml\snakeyaml\
2.0\snakeyaml-2.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\table-
layout\1.5.1\table-layout-1.5.1.jar;C:\Users\pavan\.m2\repository\tech\
grasshopper\rest-assured-cucumber-pdf-report\1.5.0\rest-assured-cucumber-pdf-
report-1.5.0.jar;C:\Users\pavan\.m2\repository\org\jsoup\jsoup\1.15.3\jsoup-
1.15.3.jar;C:\Users\pavan\.m2\repository\com\aventstack\klov-reporter\5.1.0\
klov-reporter-5.1.0.jar;C:\Users\pavan\.m2\repository\org\mongodb\mongodb-
driver\3.6.4\mongodb-driver-3.6.4.jar;C:\Users\pavan\.m2\repository\org\mongodb\
mongodb-driver-core\3.6.4\mongodb-driver-core-3.6.4.jar;C:\Users\pavan\.m2\
repository\org\mongodb\bson\3.6.4\bson-3.6.4.jar;C:\Users\pavan\.m2\repository\
org\apache\httpcomponents\httpclient\4.5.13\httpclient-4.5.13.jar;C:\Users\
pavan\.m2\repository\org\apache\httpcomponents\httpcore\4.4.13\httpcore-
4.4.13.jar;C:\Users\pavan\.m2\repository\commons-logging\commons-logging\1.2\
commons-logging-1.2.jar;C:\Users\pavan\.m2\repository\org\apache\httpcomponents\
httpmime\4.5.13\httpmime-4.5.13.jar;C:\Users\pavan\.m2\repository\tech\
grasshopper\htmlextentreporter\1.1.0\htmlextentreporter-1.1.0.jar;C:\Users\
pavan\.m2\repository\tech\grasshopper\extent-excel-report\1.4.0\extent-excel-
report-1.4.0.jar;"/>

<property name="sun.cpu.endian" value="little"/>

<property name="user.home" value="C:\Users\pavan"/>

<property name="user.language" value="en"/>

<property name="java.specification.vendor" value="Oracle Corporation"/>

<property name="java.version.date" value="2022-10-18"/>

<property name="java.home" value="C:\Program Files\Java\jdk-19"/>

<property name="file.separator" value="\"/>

<property name="basedir" value="C:\workspaces\16-June-2023batch\


opencart_sept2023_cucumber"/>
<property name="style.color" value="always"/>

<property name="java.vm.compressedOopsMode" value="32-bit"/>

<property name="line.separator" value="&#10;"/>

<property name="java.vm.specification.vendor" value="Oracle Corporation"/>

<property name="java.specification.name" value="Java Platform API


Specification"/>

<property name="surefire.real.class.path" value="C:\Users\pavan\AppData\Local\


Temp\surefire16513670564023703382\surefirebooter-20231208112952906_3.jar"/>

<property name="user.script" value=""/>

<property name="sun.management.compiler" value="HotSpot 64-Bit Tiered


Compilers"/>

<property name="java.runtime.version" value="19.0.1+10-21"/>

<property name="user.name" value="pavan"/>

<property name="stdout.encoding" value="Cp1252"/>

<property name="path.separator" value=";"/>

<property name="os.version" value="10.0"/>

<property name="java.runtime.name" value="Java(TM) SE Runtime Environment"/>

<property name="file.encoding" value="UTF-8"/>

<property name="java.vm.name" value="Java HotSpot(TM) 64-Bit Server VM"/>

<property name="localRepository" value="C:\Users\pavan\.m2\repository"/>

<property name="java.vendor.url.bug"
value="https://bugreport.java.com/bugreport/"/>

<property name="java.io.tmpdir" value="C:\Users\pavan\AppData\Local\Temp\"/>

<property name="java.version" value="19.0.1"/>

<property name="user.dir" value="C:\workspaces\16-June-2023batch\


opencart_sept2023_cucumber"/>

<property name="os.arch" value="amd64"/>

<property name="java.vm.specification.name" value="Java Virtual Machine


Specification"/>

<property name="sun.os.patch.level" value=""/>

<property name="native.encoding" value="Cp1252"/>

<property name="java.library.path" value="C:\Program Files\Java\jdk-19\bin;C:\


WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\Parallels\
Parallels Tools\Applications;C:\Program Files\Common Files\Oracle\Java\
javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\
System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\apache-maven-
3.9.4\bin;C:\Program Files\Java\jdk-19\bin;C:\Program Files\Git\cmd;C:\Program
Files\nodejs\;C:\Program Files\Git\bin;C:\Users\pavan\AppData\Local\Microsoft\
WindowsApps;;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition
2022.1.3\bin;;C:\Program Files\JetBrains\PyCharm 2022.2.4\bin;;C:\Users\pavan\
AppData\Roaming\npm;."/>

<property name="java.vm.info" value="mixed mode, sharing"/>

<property name="stderr.encoding" value="Cp1252"/>

<property name="java.vendor" value="Oracle Corporation"/>

<property name="java.vm.version" value="19.0.1+10-21"/>

<property name="sun.io.unicode.encoding" value="UnicodeLittle"/>

<property name="java.class.version" value="63.0"/>

</properties>

<testcase name="Successful Account Registration" classname="Account


Registration" time="7.746">

<system-out><![CDATA[

Scenario: Successful Account Registration #


Features/Registration.feature:3

Given the user navigates to Register Account page #


stepDefinitions.RegistrationSteps.user_navigates_to_register_account_page()

When the user enters the details into below fields #


stepDefinitions.RegistrationSteps.user_enters_the_details_into_below_fields(io.c
ucumber.datatable.DataTable)

| firstName | John |

| lastName | Kenedy |

| telephone | 1234567890 |

| password | test@123 |

And the user selects Privacy Policy #


stepDefinitions.RegistrationSteps.user_selects_privacy_policy()

And the user clicks on Continue button #


stepDefinitions.RegistrationSteps.user_clicks_on_continue_button()

Then the user account should get created successfully #


stepDefinitions.RegistrationSteps.user_account_should_get_created_successfully()

]]></system-out>

</testcase>
</testsuite>

<?xml version="1.0" encoding="UTF-8"?>

<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-
plugin/xsd/surefire-test-report-3.0.xsd" version="3.0" name="Login with Valid
Credentials" time="0.422" tests="2" errors="2" skipped="0" failures="0">

<properties>

<property name="java.specification.version" value="19"/>

<property name="sun.cpu.isalist" value="amd64"/>

<property name="sun.jnu.encoding" value="Cp1252"/>

<property name="java.class.path" value="C:\workspaces\16-June-2023batch\


opencart_sept2023_cucumber\target\test-classes;C:\workspaces\16-June-2023batch\
opencart_sept2023_cucumber\target\classes;C:\Users\pavan\.m2\repository\org\
seleniumhq\selenium\selenium-java\4.15.0\selenium-java-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-api\4.15.0\selenium-api-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-
chrome-driver\4.15.0\selenium-chrome-driver-4.15.0.jar;C:\Users\pavan\.m2\
repository\com\google\auto\service\auto-service-annotations\1.1.1\auto-service-
annotations-1.1.1.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-chromium-driver\4.15.0\selenium-chromium-driver-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-json\4.15.0\selenium-json-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-
manager\4.15.0\selenium-manager-4.15.0.jar;C:\Users\pavan\.m2\repository\org\
seleniumhq\selenium\selenium-devtools-v117\4.15.0\selenium-devtools-v117-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-
devtools-v118\4.15.0\selenium-devtools-v118-4.15.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-devtools-v119\4.15.0\selenium-
devtools-v119-4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-devtools-v85\4.15.0\selenium-devtools-v85-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-edge-driver\4.15.0\
selenium-edge-driver-4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-firefox-driver\4.15.0\selenium-firefox-driver-4.15.0.jar;C:\
Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-http\4.15.0\
selenium-http-4.15.0.jar;C:\Users\pavan\.m2\repository\dev\failsafe\failsafe\
3.3.2\failsafe-3.3.2.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-ie-driver\4.15.0\selenium-ie-driver-4.15.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-remote-driver\4.15.0\selenium-
remote-driver-4.15.0.jar;C:\Users\pavan\.m2\repository\com\google\guava\guava\
32.1.2-jre\guava-32.1.2-jre.jar;C:\Users\pavan\.m2\repository\com\google\guava\
failureaccess\1.0.1\failureaccess-1.0.1.jar;C:\Users\pavan\.m2\repository\com\
google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\
listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;C:\Users\
pavan\.m2\repository\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;C:\
Users\pavan\.m2\repository\org\checkerframework\checker-qual\3.33.0\checker-
qual-3.33.0.jar;C:\Users\pavan\.m2\repository\com\google\errorprone\
error_prone_annotations\2.18.0\error_prone_annotations-2.18.0.jar;C:\Users\
pavan\.m2\repository\com\google\j2objc\j2objc-annotations\2.8\j2objc-
annotations-2.8.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\
opentelemetry-api\1.28.0\opentelemetry-api-1.28.0.jar;C:\Users\pavan\.m2\
repository\io\opentelemetry\opentelemetry-context\1.28.0\opentelemetry-context-
1.28.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-
exporter-logging\1.28.0\opentelemetry-exporter-logging-1.28.0.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-metrics\1.28.0\
opentelemetry-sdk-metrics-1.28.0.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-extension-incubator\1.28.0-alpha\opentelemetry-
extension-incubator-1.28.0-alpha.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-sdk-logs\1.28.0\opentelemetry-sdk-logs-
1.28.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-
common\1.28.0\opentelemetry-sdk-common-1.28.0.jar;C:\Users\pavan\.m2\repository\
io\opentelemetry\opentelemetry-sdk-extension-autoconfigure-spi\1.28.0\
opentelemetry-sdk-extension-autoconfigure-spi-1.28.0.jar;C:\Users\pavan\.m2\
repository\io\opentelemetry\opentelemetry-sdk-extension-autoconfigure\1.28.0\
opentelemetry-sdk-extension-autoconfigure-1.28.0.jar;C:\Users\pavan\.m2\
repository\io\opentelemetry\opentelemetry-api-events\1.28.0-alpha\opentelemetry-
api-events-1.28.0-alpha.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\
opentelemetry-sdk-trace\1.28.0\opentelemetry-sdk-trace-1.28.0.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk\1.28.0\opentelemetry-
sdk-1.28.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-
semconv\1.28.0-alpha\opentelemetry-semconv-1.28.0-alpha.jar;C:\Users\pavan\.m2\
repository\net\bytebuddy\byte-buddy\1.14.5\byte-buddy-1.14.5.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-os\4.15.0\selenium-os-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\apache\commons\commons-exec\1.3\
commons-exec-1.3.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-safari-driver\4.15.0\selenium-safari-driver-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-support\4.15.0\selenium-
support-4.15.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\cucumber-junit\
7.14.1\cucumber-junit-7.14.1.jar;C:\Users\pavan\.m2\repository\org\apiguardian\
apiguardian-api\1.1.2\apiguardian-api-1.1.2.jar;C:\Users\pavan\.m2\repository\
io\cucumber\cucumber-core\7.14.1\cucumber-core-7.14.1.jar;C:\Users\pavan\.m2\
repository\io\cucumber\cucumber-gherkin\7.14.1\cucumber-gherkin-7.14.1.jar;C:\
Users\pavan\.m2\repository\io\cucumber\cucumber-gherkin-messages\7.14.1\
cucumber-gherkin-messages-7.14.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\
gherkin\26.2.0\gherkin-26.2.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\
messages\22.0.0\messages-22.0.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\
tag-expressions\6.0.0\tag-expressions-6.0.0.jar;C:\Users\pavan\.m2\repository\
io\cucumber\cucumber-expressions\17.0.1\cucumber-expressions-17.0.1.jar;C:\
Users\pavan\.m2\repository\io\cucumber\datatable\7.14.1\datatable-7.14.1.jar;C:\
Users\pavan\.m2\repository\io\cucumber\cucumber-plugin\7.14.1\cucumber-plugin-
7.14.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\docstring\7.14.1\docstring-
7.14.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\html-formatter\20.4.0\html-
formatter-20.4.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\junit-xml-
formatter\0.2.0\junit-xml-formatter-0.2.0.jar;C:\Users\pavan\.m2\repository\io\
cucumber\ci-environment\10.0.0\ci-environment-10.0.0.jar;C:\Users\pavan\.m2\
repository\junit\junit\4.13.2\junit-4.13.2.jar;C:\Users\pavan\.m2\repository\
org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\pavan\.m2\
repository\io\cucumber\cucumber-java\7.14.1\cucumber-java-7.14.1.jar;C:\Users\
pavan\.m2\repository\org\apache\logging\log4j\log4j-core\2.20.0\log4j-core-
2.20.0.jar;C:\Users\pavan\.m2\repository\org\apache\logging\log4j\log4j-api\
2.20.0\log4j-api-2.20.0.jar;C:\Users\pavan\.m2\repository\org\apache\poi\poi\
5.2.3\poi-5.2.3.jar;C:\Users\pavan\.m2\repository\commons-codec\commons-codec\
1.15\commons-codec-1.15.jar;C:\Users\pavan\.m2\repository\org\apache\commons\
commons-collections4\4.4\commons-collections4-4.4.jar;C:\Users\pavan\.m2\
repository\org\apache\commons\commons-math3\3.6.1\commons-math3-3.6.1.jar;C:\
Users\pavan\.m2\repository\com\zaxxer\SparseBitSet\1.2\SparseBitSet-1.2.jar;C:\
Users\pavan\.m2\repository\org\apache\poi\poi-ooxml\5.2.3\poi-ooxml-
5.2.3.jar;C:\Users\pavan\.m2\repository\org\apache\poi\poi-ooxml-lite\5.2.3\poi-
ooxml-lite-5.2.3.jar;C:\Users\pavan\.m2\repository\org\apache\xmlbeans\xmlbeans\
5.1.1\xmlbeans-5.1.1.jar;C:\Users\pavan\.m2\repository\org\apache\commons\
commons-compress\1.21\commons-compress-1.21.jar;C:\Users\pavan\.m2\repository\
com\github\virtuald\curvesapi\1.07\curvesapi-1.07.jar;C:\Users\pavan\.m2\
repository\commons-io\commons-io\2.11.0\commons-io-2.11.0.jar;C:\Users\
pavan\.m2\repository\org\apache\commons\commons-lang3\3.12.0\commons-lang3-
3.12.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\extentreports-
cucumber7-adapter\1.14.0\extentreports-cucumber7-adapter-1.14.0.jar;C:\Users\
pavan\.m2\repository\com\aventstack\extentreports\5.1.0\extentreports-
5.1.0.jar;C:\Users\pavan\.m2\repository\io\reactivex\rxjava3\rxjava\3.1.6\
rxjava-3.1.6.jar;C:\Users\pavan\.m2\repository\org\reactivestreams\reactive-
streams\1.0.4\reactive-streams-1.0.4.jar;C:\Users\pavan\.m2\repository\org\
freemarker\freemarker\2.3.32\freemarker-2.3.32.jar;C:\Users\pavan\.m2\
repository\org\projectlombok\lombok\1.18.26\lombok-1.18.26.jar;C:\Users\
pavan\.m2\repository\com\google\code\gson\gson\2.10.1\gson-2.10.1.jar;C:\Users\
pavan\.m2\repository\tech\grasshopper\extent-pdf-report\2.12.0\extent-pdf-
report-2.12.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\cucumber-pdf-
report\2.14.0\cucumber-pdf-report-2.14.0.jar;C:\Users\pavan\.m2\repository\org\
apache\pdfbox\pdfbox\2.0.26\pdfbox-2.0.26.jar;C:\Users\pavan\.m2\repository\org\
apache\pdfbox\fontbox\2.0.26\fontbox-2.0.26.jar;C:\Users\pavan\.m2\repository\
org\knowm\xchart\xchart\3.8.0\xchart-3.8.0.jar;C:\Users\pavan\.m2\repository\de\
erichseifert\vectorgraphics2d\VectorGraphics2D\0.13\VectorGraphics2D-
0.13.jar;C:\Users\pavan\.m2\repository\de\rototor\pdfbox\graphics2d\0.30\
graphics2d-0.30.jar;C:\Users\pavan\.m2\repository\com\madgag\animated-gif-lib\
1.4\animated-gif-lib-1.4.jar;C:\Users\pavan\.m2\repository\org\yaml\snakeyaml\
2.0\snakeyaml-2.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\table-
layout\1.5.1\table-layout-1.5.1.jar;C:\Users\pavan\.m2\repository\tech\
grasshopper\rest-assured-cucumber-pdf-report\1.5.0\rest-assured-cucumber-pdf-
report-1.5.0.jar;C:\Users\pavan\.m2\repository\org\jsoup\jsoup\1.15.3\jsoup-
1.15.3.jar;C:\Users\pavan\.m2\repository\com\aventstack\klov-reporter\5.1.0\
klov-reporter-5.1.0.jar;C:\Users\pavan\.m2\repository\org\mongodb\mongodb-
driver\3.6.4\mongodb-driver-3.6.4.jar;C:\Users\pavan\.m2\repository\org\mongodb\
mongodb-driver-core\3.6.4\mongodb-driver-core-3.6.4.jar;C:\Users\pavan\.m2\
repository\org\mongodb\bson\3.6.4\bson-3.6.4.jar;C:\Users\pavan\.m2\repository\
org\apache\httpcomponents\httpclient\4.5.13\httpclient-4.5.13.jar;C:\Users\
pavan\.m2\repository\org\apache\httpcomponents\httpcore\4.4.13\httpcore-
4.4.13.jar;C:\Users\pavan\.m2\repository\commons-logging\commons-logging\1.2\
commons-logging-1.2.jar;C:\Users\pavan\.m2\repository\org\apache\httpcomponents\
httpmime\4.5.13\httpmime-4.5.13.jar;C:\Users\pavan\.m2\repository\tech\
grasshopper\htmlextentreporter\1.1.0\htmlextentreporter-1.1.0.jar;C:\Users\
pavan\.m2\repository\tech\grasshopper\extent-excel-report\1.4.0\extent-excel-
report-1.4.0.jar;"/>

<property name="java.vm.vendor" value="Oracle Corporation"/>

<property name="sun.arch.data.model" value="64"/>

<property name="user.variant" value=""/>

<property name="java.vendor.url" value="https://java.oracle.com/"/>

<property name="user.timezone" value="Asia/Calcutta"/>


<property name="os.name" value="Windows 11"/>

<property name="java.vm.specification.version" value="19"/>

<property name="sun.java.launcher" value="SUN_STANDARD"/>

<property name="user.country" value="US"/>

<property name="sun.boot.library.path" value="C:\Program Files\Java\jdk-19\


bin"/>

<property name="sun.java.command" value="C:\Users\pavan\AppData\Local\Temp\


surefire16513670564023703382\surefirebooter-20231208112952906_3.jar C:\Users\
pavan\AppData\Local\Temp\surefire16513670564023703382 2023-12-08T11-29-52_535-
jvmRun1 surefire-20231208112952906_1tmp surefire_0-20231208112952906_2tmp"/>

<property name="jdk.debug" value="release"/>

<property name="surefire.test.class.path" value="C:\workspaces\16-June-


2023batch\opencart_sept2023_cucumber\target\test-classes;C:\workspaces\16-June-
2023batch\opencart_sept2023_cucumber\target\classes;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-java\4.15.0\selenium-java-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-api\
4.15.0\selenium-api-4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-chrome-driver\4.15.0\selenium-chrome-driver-4.15.0.jar;C:\
Users\pavan\.m2\repository\com\google\auto\service\auto-service-annotations\
1.1.1\auto-service-annotations-1.1.1.jar;C:\Users\pavan\.m2\repository\org\
seleniumhq\selenium\selenium-chromium-driver\4.15.0\selenium-chromium-driver-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-json\
4.15.0\selenium-json-4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-manager\4.15.0\selenium-manager-4.15.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-devtools-v117\4.15.0\selenium-
devtools-v117-4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-devtools-v118\4.15.0\selenium-devtools-v118-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-devtools-v119\4.15.0\
selenium-devtools-v119-4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-devtools-v85\4.15.0\selenium-devtools-v85-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-edge-driver\4.15.0\
selenium-edge-driver-4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-firefox-driver\4.15.0\selenium-firefox-driver-4.15.0.jar;C:\
Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-http\4.15.0\
selenium-http-4.15.0.jar;C:\Users\pavan\.m2\repository\dev\failsafe\failsafe\
3.3.2\failsafe-3.3.2.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-ie-driver\4.15.0\selenium-ie-driver-4.15.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-remote-driver\4.15.0\selenium-
remote-driver-4.15.0.jar;C:\Users\pavan\.m2\repository\com\google\guava\guava\
32.1.2-jre\guava-32.1.2-jre.jar;C:\Users\pavan\.m2\repository\com\google\guava\
failureaccess\1.0.1\failureaccess-1.0.1.jar;C:\Users\pavan\.m2\repository\com\
google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\
listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;C:\Users\
pavan\.m2\repository\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;C:\
Users\pavan\.m2\repository\org\checkerframework\checker-qual\3.33.0\checker-
qual-3.33.0.jar;C:\Users\pavan\.m2\repository\com\google\errorprone\
error_prone_annotations\2.18.0\error_prone_annotations-2.18.0.jar;C:\Users\
pavan\.m2\repository\com\google\j2objc\j2objc-annotations\2.8\j2objc-
annotations-2.8.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\
opentelemetry-api\1.28.0\opentelemetry-api-1.28.0.jar;C:\Users\pavan\.m2\
repository\io\opentelemetry\opentelemetry-context\1.28.0\opentelemetry-context-
1.28.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-
exporter-logging\1.28.0\opentelemetry-exporter-logging-1.28.0.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-metrics\1.28.0\
opentelemetry-sdk-metrics-1.28.0.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-extension-incubator\1.28.0-alpha\opentelemetry-
extension-incubator-1.28.0-alpha.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-sdk-logs\1.28.0\opentelemetry-sdk-logs-
1.28.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-
common\1.28.0\opentelemetry-sdk-common-1.28.0.jar;C:\Users\pavan\.m2\repository\
io\opentelemetry\opentelemetry-sdk-extension-autoconfigure-spi\1.28.0\
opentelemetry-sdk-extension-autoconfigure-spi-1.28.0.jar;C:\Users\pavan\.m2\
repository\io\opentelemetry\opentelemetry-sdk-extension-autoconfigure\1.28.0\
opentelemetry-sdk-extension-autoconfigure-1.28.0.jar;C:\Users\pavan\.m2\
repository\io\opentelemetry\opentelemetry-api-events\1.28.0-alpha\opentelemetry-
api-events-1.28.0-alpha.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\
opentelemetry-sdk-trace\1.28.0\opentelemetry-sdk-trace-1.28.0.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk\1.28.0\opentelemetry-
sdk-1.28.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-
semconv\1.28.0-alpha\opentelemetry-semconv-1.28.0-alpha.jar;C:\Users\pavan\.m2\
repository\net\bytebuddy\byte-buddy\1.14.5\byte-buddy-1.14.5.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-os\4.15.0\selenium-os-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\apache\commons\commons-exec\1.3\
commons-exec-1.3.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-safari-driver\4.15.0\selenium-safari-driver-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-support\4.15.0\selenium-
support-4.15.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\cucumber-junit\
7.14.1\cucumber-junit-7.14.1.jar;C:\Users\pavan\.m2\repository\org\apiguardian\
apiguardian-api\1.1.2\apiguardian-api-1.1.2.jar;C:\Users\pavan\.m2\repository\
io\cucumber\cucumber-core\7.14.1\cucumber-core-7.14.1.jar;C:\Users\pavan\.m2\
repository\io\cucumber\cucumber-gherkin\7.14.1\cucumber-gherkin-7.14.1.jar;C:\
Users\pavan\.m2\repository\io\cucumber\cucumber-gherkin-messages\7.14.1\
cucumber-gherkin-messages-7.14.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\
gherkin\26.2.0\gherkin-26.2.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\
messages\22.0.0\messages-22.0.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\
tag-expressions\6.0.0\tag-expressions-6.0.0.jar;C:\Users\pavan\.m2\repository\
io\cucumber\cucumber-expressions\17.0.1\cucumber-expressions-17.0.1.jar;C:\
Users\pavan\.m2\repository\io\cucumber\datatable\7.14.1\datatable-7.14.1.jar;C:\
Users\pavan\.m2\repository\io\cucumber\cucumber-plugin\7.14.1\cucumber-plugin-
7.14.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\docstring\7.14.1\docstring-
7.14.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\html-formatter\20.4.0\html-
formatter-20.4.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\junit-xml-
formatter\0.2.0\junit-xml-formatter-0.2.0.jar;C:\Users\pavan\.m2\repository\io\
cucumber\ci-environment\10.0.0\ci-environment-10.0.0.jar;C:\Users\pavan\.m2\
repository\junit\junit\4.13.2\junit-4.13.2.jar;C:\Users\pavan\.m2\repository\
org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\pavan\.m2\
repository\io\cucumber\cucumber-java\7.14.1\cucumber-java-7.14.1.jar;C:\Users\
pavan\.m2\repository\org\apache\logging\log4j\log4j-core\2.20.0\log4j-core-
2.20.0.jar;C:\Users\pavan\.m2\repository\org\apache\logging\log4j\log4j-api\
2.20.0\log4j-api-2.20.0.jar;C:\Users\pavan\.m2\repository\org\apache\poi\poi\
5.2.3\poi-5.2.3.jar;C:\Users\pavan\.m2\repository\commons-codec\commons-codec\
1.15\commons-codec-1.15.jar;C:\Users\pavan\.m2\repository\org\apache\commons\
commons-collections4\4.4\commons-collections4-4.4.jar;C:\Users\pavan\.m2\
repository\org\apache\commons\commons-math3\3.6.1\commons-math3-3.6.1.jar;C:\
Users\pavan\.m2\repository\com\zaxxer\SparseBitSet\1.2\SparseBitSet-1.2.jar;C:\
Users\pavan\.m2\repository\org\apache\poi\poi-ooxml\5.2.3\poi-ooxml-
5.2.3.jar;C:\Users\pavan\.m2\repository\org\apache\poi\poi-ooxml-lite\5.2.3\poi-
ooxml-lite-5.2.3.jar;C:\Users\pavan\.m2\repository\org\apache\xmlbeans\xmlbeans\
5.1.1\xmlbeans-5.1.1.jar;C:\Users\pavan\.m2\repository\org\apache\commons\
commons-compress\1.21\commons-compress-1.21.jar;C:\Users\pavan\.m2\repository\
com\github\virtuald\curvesapi\1.07\curvesapi-1.07.jar;C:\Users\pavan\.m2\
repository\commons-io\commons-io\2.11.0\commons-io-2.11.0.jar;C:\Users\
pavan\.m2\repository\org\apache\commons\commons-lang3\3.12.0\commons-lang3-
3.12.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\extentreports-
cucumber7-adapter\1.14.0\extentreports-cucumber7-adapter-1.14.0.jar;C:\Users\
pavan\.m2\repository\com\aventstack\extentreports\5.1.0\extentreports-
5.1.0.jar;C:\Users\pavan\.m2\repository\io\reactivex\rxjava3\rxjava\3.1.6\
rxjava-3.1.6.jar;C:\Users\pavan\.m2\repository\org\reactivestreams\reactive-
streams\1.0.4\reactive-streams-1.0.4.jar;C:\Users\pavan\.m2\repository\org\
freemarker\freemarker\2.3.32\freemarker-2.3.32.jar;C:\Users\pavan\.m2\
repository\org\projectlombok\lombok\1.18.26\lombok-1.18.26.jar;C:\Users\
pavan\.m2\repository\com\google\code\gson\gson\2.10.1\gson-2.10.1.jar;C:\Users\
pavan\.m2\repository\tech\grasshopper\extent-pdf-report\2.12.0\extent-pdf-
report-2.12.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\cucumber-pdf-
report\2.14.0\cucumber-pdf-report-2.14.0.jar;C:\Users\pavan\.m2\repository\org\
apache\pdfbox\pdfbox\2.0.26\pdfbox-2.0.26.jar;C:\Users\pavan\.m2\repository\org\
apache\pdfbox\fontbox\2.0.26\fontbox-2.0.26.jar;C:\Users\pavan\.m2\repository\
org\knowm\xchart\xchart\3.8.0\xchart-3.8.0.jar;C:\Users\pavan\.m2\repository\de\
erichseifert\vectorgraphics2d\VectorGraphics2D\0.13\VectorGraphics2D-
0.13.jar;C:\Users\pavan\.m2\repository\de\rototor\pdfbox\graphics2d\0.30\
graphics2d-0.30.jar;C:\Users\pavan\.m2\repository\com\madgag\animated-gif-lib\
1.4\animated-gif-lib-1.4.jar;C:\Users\pavan\.m2\repository\org\yaml\snakeyaml\
2.0\snakeyaml-2.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\table-
layout\1.5.1\table-layout-1.5.1.jar;C:\Users\pavan\.m2\repository\tech\
grasshopper\rest-assured-cucumber-pdf-report\1.5.0\rest-assured-cucumber-pdf-
report-1.5.0.jar;C:\Users\pavan\.m2\repository\org\jsoup\jsoup\1.15.3\jsoup-
1.15.3.jar;C:\Users\pavan\.m2\repository\com\aventstack\klov-reporter\5.1.0\
klov-reporter-5.1.0.jar;C:\Users\pavan\.m2\repository\org\mongodb\mongodb-
driver\3.6.4\mongodb-driver-3.6.4.jar;C:\Users\pavan\.m2\repository\org\mongodb\
mongodb-driver-core\3.6.4\mongodb-driver-core-3.6.4.jar;C:\Users\pavan\.m2\
repository\org\mongodb\bson\3.6.4\bson-3.6.4.jar;C:\Users\pavan\.m2\repository\
org\apache\httpcomponents\httpclient\4.5.13\httpclient-4.5.13.jar;C:\Users\
pavan\.m2\repository\org\apache\httpcomponents\httpcore\4.4.13\httpcore-
4.4.13.jar;C:\Users\pavan\.m2\repository\commons-logging\commons-logging\1.2\
commons-logging-1.2.jar;C:\Users\pavan\.m2\repository\org\apache\httpcomponents\
httpmime\4.5.13\httpmime-4.5.13.jar;C:\Users\pavan\.m2\repository\tech\
grasshopper\htmlextentreporter\1.1.0\htmlextentreporter-1.1.0.jar;C:\Users\
pavan\.m2\repository\tech\grasshopper\extent-excel-report\1.4.0\extent-excel-
report-1.4.0.jar;"/>

<property name="sun.cpu.endian" value="little"/>

<property name="user.home" value="C:\Users\pavan"/>

<property name="user.language" value="en"/>

<property name="java.specification.vendor" value="Oracle Corporation"/>

<property name="java.version.date" value="2022-10-18"/>


<property name="java.home" value="C:\Program Files\Java\jdk-19"/>

<property name="file.separator" value="\"/>

<property name="basedir" value="C:\workspaces\16-June-2023batch\


opencart_sept2023_cucumber"/>

<property name="style.color" value="always"/>

<property name="java.vm.compressedOopsMode" value="32-bit"/>

<property name="line.separator" value="&#10;"/>

<property name="java.vm.specification.vendor" value="Oracle Corporation"/>

<property name="java.specification.name" value="Java Platform API


Specification"/>

<property name="surefire.real.class.path" value="C:\Users\pavan\AppData\Local\


Temp\surefire16513670564023703382\surefirebooter-20231208112952906_3.jar"/>

<property name="user.script" value=""/>

<property name="sun.management.compiler" value="HotSpot 64-Bit Tiered


Compilers"/>

<property name="java.runtime.version" value="19.0.1+10-21"/>

<property name="user.name" value="pavan"/>

<property name="stdout.encoding" value="Cp1252"/>

<property name="path.separator" value=";"/>

<property name="os.version" value="10.0"/>

<property name="java.runtime.name" value="Java(TM) SE Runtime Environment"/>

<property name="file.encoding" value="UTF-8"/>

<property name="java.vm.name" value="Java HotSpot(TM) 64-Bit Server VM"/>

<property name="localRepository" value="C:\Users\pavan\.m2\repository"/>

<property name="java.vendor.url.bug"
value="https://bugreport.java.com/bugreport/"/>

<property name="java.io.tmpdir" value="C:\Users\pavan\AppData\Local\Temp\"/>

<property name="java.version" value="19.0.1"/>

<property name="user.dir" value="C:\workspaces\16-June-2023batch\


opencart_sept2023_cucumber"/>

<property name="os.arch" value="amd64"/>

<property name="java.vm.specification.name" value="Java Virtual Machine


Specification"/>
<property name="sun.os.patch.level" value=""/>

<property name="native.encoding" value="Cp1252"/>

<property name="java.library.path" value="C:\Program Files\Java\jdk-19\bin;C:\


WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\Parallels\
Parallels Tools\Applications;C:\Program Files\Common Files\Oracle\Java\
javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\
System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\apache-maven-
3.9.4\bin;C:\Program Files\Java\jdk-19\bin;C:\Program Files\Git\cmd;C:\Program
Files\nodejs\;C:\Program Files\Git\bin;C:\Users\pavan\AppData\Local\Microsoft\
WindowsApps;;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition
2022.1.3\bin;;C:\Program Files\JetBrains\PyCharm 2022.2.4\bin;;C:\Users\pavan\
AppData\Roaming\npm;."/>

<property name="java.vm.info" value="mixed mode, sharing"/>

<property name="stderr.encoding" value="Cp1252"/>

<property name="java.vendor" value="Oracle Corporation"/>

<property name="java.vm.version" value="19.0.1+10-21"/>

<property name="sun.io.unicode.encoding" value="UnicodeLittle"/>

<property name="java.class.version" value="63.0"/>

</properties>

<testcase name="Successful Login with Valid Credentials" classname="Login with


Valid Credentials" time="0.422">

<error message="Cannot invoke &quot;String.equalsIgnoreCase(String)&quot;


because the return value of &quot;java.util.Properties.getProperty(String)&quot;
is null" type="java.lang.NullPointerException"><!
[CDATA[java.lang.NullPointerException: Cannot invoke
"String.equalsIgnoreCase(String)" because the return value of
"java.util.Properties.getProperty(String)" is null

at factory.BaseClass.initilizeBrowser(BaseClass.java:27)

at stepDefinitions.Hooks.setup(Hooks.java:24)

]]></error>

<system-out><![CDATA[

@sanity @regression

Scenario: Successful Login with Valid Credentials


# Features/Login.feature:4

java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)"


because the return value of "java.util.Properties.getProperty(String)" is null

at factory.BaseClass.initilizeBrowser(BaseClass.java:27)

at stepDefinitions.Hooks.setup(Hooks.java:24)
Given the user navigates to login page
# stepDefinitions.LoginSteps.user_navigate_to_login_page()

When user enters email as "[email protected]" and password as "test@123"


#
stepDefinitions.LoginSteps.user_enters_email_as_and_password_as(java.lang.String
,java.lang.String)

And the user clicks on the Login button


# stepDefinitions.LoginSteps.click_on_login_button()

Then the user should be redirected to the MyAccount Page


# stepDefinitions.LoginSteps.user_navigates_to_my_account_page()

java.lang.NullPointerException: Cannot invoke


"org.openqa.selenium.WebDriver.quit()" because "this.driver" is null

at stepDefinitions.Hooks.tearDown(Hooks.java:37)

]]></system-out>

</testcase>

<testcase name="Successful Login with Valid Credentials" classname="Login with


Valid Credentials" time="0">

<error message="Cannot invoke &quot;org.openqa.selenium.WebDriver.quit()&quot;


because &quot;this.driver&quot; is null"
type="java.lang.NullPointerException"><![CDATA[java.lang.NullPointerException:
Cannot invoke "org.openqa.selenium.WebDriver.quit()" because "this.driver" is
null

at stepDefinitions.Hooks.tearDown(Hooks.java:37)

]]></error>

</testcase>

</testsuite>

-------------------------------------------------------------------------------

Test set: testRunner.TestRunner

-------------------------------------------------------------------------------

Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 21.72 s -- in


testRunner.TestRunner

<?xml version="1.0" encoding="UTF-8"?>


<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-
plugin/xsd/surefire-test-report-3.0.xsd" version="3.0"
name="testRunner.TestRunner" time="21.717" tests="2" errors="0" skipped="0"
failures="0">

<properties>

<property name="java.specification.version" value="19"/>

<property name="sun.cpu.isalist" value="amd64"/>

<property name="sun.jnu.encoding" value="Cp1252"/>

<property name="java.class.path" value="C:\workspaces\15-Sept-2023batch\


opencart_cucumber\target\test-classes;C:\workspaces\15-Sept-2023batch\
opencart_cucumber\target\classes;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-java\4.15.0\selenium-java-4.15.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-api\4.15.0\selenium-api-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-
chrome-driver\4.15.0\selenium-chrome-driver-4.15.0.jar;C:\Users\pavan\.m2\
repository\com\google\auto\service\auto-service-annotations\1.1.1\auto-service-
annotations-1.1.1.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-chromium-driver\4.15.0\selenium-chromium-driver-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-json\4.15.0\selenium-json-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-
manager\4.15.0\selenium-manager-4.15.0.jar;C:\Users\pavan\.m2\repository\org\
seleniumhq\selenium\selenium-devtools-v117\4.15.0\selenium-devtools-v117-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-
devtools-v118\4.15.0\selenium-devtools-v118-4.15.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-devtools-v119\4.15.0\selenium-
devtools-v119-4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-devtools-v85\4.15.0\selenium-devtools-v85-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-edge-driver\4.15.0\
selenium-edge-driver-4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-firefox-driver\4.15.0\selenium-firefox-driver-4.15.0.jar;C:\
Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-http\4.15.0\
selenium-http-4.15.0.jar;C:\Users\pavan\.m2\repository\dev\failsafe\failsafe\
3.3.2\failsafe-3.3.2.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-ie-driver\4.15.0\selenium-ie-driver-4.15.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-remote-driver\4.15.0\selenium-
remote-driver-4.15.0.jar;C:\Users\pavan\.m2\repository\com\google\guava\guava\
32.1.2-jre\guava-32.1.2-jre.jar;C:\Users\pavan\.m2\repository\com\google\guava\
failureaccess\1.0.1\failureaccess-1.0.1.jar;C:\Users\pavan\.m2\repository\com\
google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\
listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;C:\Users\
pavan\.m2\repository\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;C:\
Users\pavan\.m2\repository\org\checkerframework\checker-qual\3.33.0\checker-
qual-3.33.0.jar;C:\Users\pavan\.m2\repository\com\google\errorprone\
error_prone_annotations\2.18.0\error_prone_annotations-2.18.0.jar;C:\Users\
pavan\.m2\repository\com\google\j2objc\j2objc-annotations\2.8\j2objc-
annotations-2.8.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\
opentelemetry-api\1.28.0\opentelemetry-api-1.28.0.jar;C:\Users\pavan\.m2\
repository\io\opentelemetry\opentelemetry-context\1.28.0\opentelemetry-context-
1.28.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-
exporter-logging\1.28.0\opentelemetry-exporter-logging-1.28.0.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-metrics\1.28.0\
opentelemetry-sdk-metrics-1.28.0.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-extension-incubator\1.28.0-alpha\opentelemetry-
extension-incubator-1.28.0-alpha.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-sdk-logs\1.28.0\opentelemetry-sdk-logs-
1.28.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-
common\1.28.0\opentelemetry-sdk-common-1.28.0.jar;C:\Users\pavan\.m2\repository\
io\opentelemetry\opentelemetry-sdk-extension-autoconfigure-spi\1.28.0\
opentelemetry-sdk-extension-autoconfigure-spi-1.28.0.jar;C:\Users\pavan\.m2\
repository\io\opentelemetry\opentelemetry-sdk-extension-autoconfigure\1.28.0\
opentelemetry-sdk-extension-autoconfigure-1.28.0.jar;C:\Users\pavan\.m2\
repository\io\opentelemetry\opentelemetry-api-events\1.28.0-alpha\opentelemetry-
api-events-1.28.0-alpha.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\
opentelemetry-sdk-trace\1.28.0\opentelemetry-sdk-trace-1.28.0.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk\1.28.0\opentelemetry-
sdk-1.28.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-
semconv\1.28.0-alpha\opentelemetry-semconv-1.28.0-alpha.jar;C:\Users\pavan\.m2\
repository\net\bytebuddy\byte-buddy\1.14.5\byte-buddy-1.14.5.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-os\4.15.0\selenium-os-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\apache\commons\commons-exec\1.3\
commons-exec-1.3.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-safari-driver\4.15.0\selenium-safari-driver-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-support\4.15.0\selenium-
support-4.15.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\cucumber-junit\
7.14.1\cucumber-junit-7.14.1.jar;C:\Users\pavan\.m2\repository\org\apiguardian\
apiguardian-api\1.1.2\apiguardian-api-1.1.2.jar;C:\Users\pavan\.m2\repository\
io\cucumber\cucumber-core\7.14.1\cucumber-core-7.14.1.jar;C:\Users\pavan\.m2\
repository\io\cucumber\cucumber-gherkin\7.14.1\cucumber-gherkin-7.14.1.jar;C:\
Users\pavan\.m2\repository\io\cucumber\cucumber-gherkin-messages\7.14.1\
cucumber-gherkin-messages-7.14.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\
gherkin\26.2.0\gherkin-26.2.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\
messages\22.0.0\messages-22.0.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\
tag-expressions\6.0.0\tag-expressions-6.0.0.jar;C:\Users\pavan\.m2\repository\
io\cucumber\cucumber-expressions\17.0.1\cucumber-expressions-17.0.1.jar;C:\
Users\pavan\.m2\repository\io\cucumber\datatable\7.14.1\datatable-7.14.1.jar;C:\
Users\pavan\.m2\repository\io\cucumber\cucumber-plugin\7.14.1\cucumber-plugin-
7.14.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\docstring\7.14.1\docstring-
7.14.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\html-formatter\20.4.0\html-
formatter-20.4.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\junit-xml-
formatter\0.2.0\junit-xml-formatter-0.2.0.jar;C:\Users\pavan\.m2\repository\io\
cucumber\ci-environment\10.0.0\ci-environment-10.0.0.jar;C:\Users\pavan\.m2\
repository\junit\junit\4.13.2\junit-4.13.2.jar;C:\Users\pavan\.m2\repository\
org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\pavan\.m2\
repository\io\cucumber\cucumber-java\7.14.1\cucumber-java-7.14.1.jar;C:\Users\
pavan\.m2\repository\org\apache\logging\log4j\log4j-core\2.20.0\log4j-core-
2.20.0.jar;C:\Users\pavan\.m2\repository\org\apache\logging\log4j\log4j-api\
2.20.0\log4j-api-2.20.0.jar;C:\Users\pavan\.m2\repository\org\apache\poi\poi\
5.2.3\poi-5.2.3.jar;C:\Users\pavan\.m2\repository\commons-codec\commons-codec\
1.15\commons-codec-1.15.jar;C:\Users\pavan\.m2\repository\org\apache\commons\
commons-collections4\4.4\commons-collections4-4.4.jar;C:\Users\pavan\.m2\
repository\org\apache\commons\commons-math3\3.6.1\commons-math3-3.6.1.jar;C:\
Users\pavan\.m2\repository\com\zaxxer\SparseBitSet\1.2\SparseBitSet-1.2.jar;C:\
Users\pavan\.m2\repository\org\apache\poi\poi-ooxml\5.2.3\poi-ooxml-
5.2.3.jar;C:\Users\pavan\.m2\repository\org\apache\poi\poi-ooxml-lite\5.2.3\poi-
ooxml-lite-5.2.3.jar;C:\Users\pavan\.m2\repository\org\apache\xmlbeans\xmlbeans\
5.1.1\xmlbeans-5.1.1.jar;C:\Users\pavan\.m2\repository\org\apache\commons\
commons-compress\1.21\commons-compress-1.21.jar;C:\Users\pavan\.m2\repository\
com\github\virtuald\curvesapi\1.07\curvesapi-1.07.jar;C:\Users\pavan\.m2\
repository\commons-io\commons-io\2.11.0\commons-io-2.11.0.jar;C:\Users\
pavan\.m2\repository\org\apache\commons\commons-lang3\3.12.0\commons-lang3-
3.12.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\extentreports-
cucumber7-adapter\1.14.0\extentreports-cucumber7-adapter-1.14.0.jar;C:\Users\
pavan\.m2\repository\com\aventstack\extentreports\5.1.0\extentreports-
5.1.0.jar;C:\Users\pavan\.m2\repository\io\reactivex\rxjava3\rxjava\3.1.6\
rxjava-3.1.6.jar;C:\Users\pavan\.m2\repository\org\reactivestreams\reactive-
streams\1.0.4\reactive-streams-1.0.4.jar;C:\Users\pavan\.m2\repository\org\
freemarker\freemarker\2.3.32\freemarker-2.3.32.jar;C:\Users\pavan\.m2\
repository\org\projectlombok\lombok\1.18.26\lombok-1.18.26.jar;C:\Users\
pavan\.m2\repository\com\google\code\gson\gson\2.10.1\gson-2.10.1.jar;C:\Users\
pavan\.m2\repository\tech\grasshopper\extent-pdf-report\2.12.0\extent-pdf-
report-2.12.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\cucumber-pdf-
report\2.14.0\cucumber-pdf-report-2.14.0.jar;C:\Users\pavan\.m2\repository\org\
apache\pdfbox\pdfbox\2.0.26\pdfbox-2.0.26.jar;C:\Users\pavan\.m2\repository\org\
apache\pdfbox\fontbox\2.0.26\fontbox-2.0.26.jar;C:\Users\pavan\.m2\repository\
org\knowm\xchart\xchart\3.8.0\xchart-3.8.0.jar;C:\Users\pavan\.m2\repository\de\
erichseifert\vectorgraphics2d\VectorGraphics2D\0.13\VectorGraphics2D-
0.13.jar;C:\Users\pavan\.m2\repository\de\rototor\pdfbox\graphics2d\0.30\
graphics2d-0.30.jar;C:\Users\pavan\.m2\repository\com\madgag\animated-gif-lib\
1.4\animated-gif-lib-1.4.jar;C:\Users\pavan\.m2\repository\org\yaml\snakeyaml\
2.0\snakeyaml-2.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\table-
layout\1.5.1\table-layout-1.5.1.jar;C:\Users\pavan\.m2\repository\tech\
grasshopper\rest-assured-cucumber-pdf-report\1.5.0\rest-assured-cucumber-pdf-
report-1.5.0.jar;C:\Users\pavan\.m2\repository\org\jsoup\jsoup\1.15.3\jsoup-
1.15.3.jar;C:\Users\pavan\.m2\repository\com\aventstack\klov-reporter\5.1.0\
klov-reporter-5.1.0.jar;C:\Users\pavan\.m2\repository\org\mongodb\mongodb-
driver\3.6.4\mongodb-driver-3.6.4.jar;C:\Users\pavan\.m2\repository\org\mongodb\
mongodb-driver-core\3.6.4\mongodb-driver-core-3.6.4.jar;C:\Users\pavan\.m2\
repository\org\mongodb\bson\3.6.4\bson-3.6.4.jar;C:\Users\pavan\.m2\repository\
org\apache\httpcomponents\httpclient\4.5.13\httpclient-4.5.13.jar;C:\Users\
pavan\.m2\repository\org\apache\httpcomponents\httpcore\4.4.13\httpcore-
4.4.13.jar;C:\Users\pavan\.m2\repository\commons-logging\commons-logging\1.2\
commons-logging-1.2.jar;C:\Users\pavan\.m2\repository\org\apache\httpcomponents\
httpmime\4.5.13\httpmime-4.5.13.jar;C:\Users\pavan\.m2\repository\tech\
grasshopper\htmlextentreporter\1.1.0\htmlextentreporter-1.1.0.jar;C:\Users\
pavan\.m2\repository\tech\grasshopper\extent-excel-report\1.4.0\extent-excel-
report-1.4.0.jar;C:\Users\pavan\.m2\repository\org\apache\commons\commons-email\
1.5\commons-email-1.5.jar;C:\Users\pavan\.m2\repository\com\sun\mail\javax.mail\
1.5.6\javax.mail-1.5.6.jar;C:\Users\pavan\.m2\repository\javax\activation\
activation\1.1\activation-1.1.jar;"/>

<property name="java.vm.vendor" value="Oracle Corporation"/>

<property name="sun.arch.data.model" value="64"/>

<property name="user.variant" value=""/>

<property name="java.vendor.url" value="https://java.oracle.com/"/>

<property name="user.timezone" value="Asia/Calcutta"/>

<property name="os.name" value="Windows 11"/>


<property name="java.vm.specification.version" value="19"/>

<property name="sun.java.launcher" value="SUN_STANDARD"/>

<property name="user.country" value="US"/>

<property name="sun.boot.library.path" value="C:\Program Files\Java\jdk-19\


bin"/>

<property name="sun.java.command" value="C:\Users\pavan\AppData\Local\Temp\


surefire5685030077594761121\surefirebooter-20231208124802820_3.jar C:\Users\
pavan\AppData\Local\Temp\surefire5685030077594761121 2023-12-08T12-48-02_577-
jvmRun1 surefire-20231208124802820_1tmp surefire_0-20231208124802820_2tmp"/>

<property name="jdk.debug" value="release"/>

<property name="surefire.test.class.path" value="C:\workspaces\15-Sept-


2023batch\opencart_cucumber\target\test-classes;C:\workspaces\15-Sept-2023batch\
opencart_cucumber\target\classes;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-java\4.15.0\selenium-java-4.15.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-api\4.15.0\selenium-api-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-
chrome-driver\4.15.0\selenium-chrome-driver-4.15.0.jar;C:\Users\pavan\.m2\
repository\com\google\auto\service\auto-service-annotations\1.1.1\auto-service-
annotations-1.1.1.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-chromium-driver\4.15.0\selenium-chromium-driver-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-json\4.15.0\selenium-json-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-
manager\4.15.0\selenium-manager-4.15.0.jar;C:\Users\pavan\.m2\repository\org\
seleniumhq\selenium\selenium-devtools-v117\4.15.0\selenium-devtools-v117-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-
devtools-v118\4.15.0\selenium-devtools-v118-4.15.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-devtools-v119\4.15.0\selenium-
devtools-v119-4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-devtools-v85\4.15.0\selenium-devtools-v85-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-edge-driver\4.15.0\
selenium-edge-driver-4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-firefox-driver\4.15.0\selenium-firefox-driver-4.15.0.jar;C:\
Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-http\4.15.0\
selenium-http-4.15.0.jar;C:\Users\pavan\.m2\repository\dev\failsafe\failsafe\
3.3.2\failsafe-3.3.2.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-ie-driver\4.15.0\selenium-ie-driver-4.15.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-remote-driver\4.15.0\selenium-
remote-driver-4.15.0.jar;C:\Users\pavan\.m2\repository\com\google\guava\guava\
32.1.2-jre\guava-32.1.2-jre.jar;C:\Users\pavan\.m2\repository\com\google\guava\
failureaccess\1.0.1\failureaccess-1.0.1.jar;C:\Users\pavan\.m2\repository\com\
google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\
listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;C:\Users\
pavan\.m2\repository\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;C:\
Users\pavan\.m2\repository\org\checkerframework\checker-qual\3.33.0\checker-
qual-3.33.0.jar;C:\Users\pavan\.m2\repository\com\google\errorprone\
error_prone_annotations\2.18.0\error_prone_annotations-2.18.0.jar;C:\Users\
pavan\.m2\repository\com\google\j2objc\j2objc-annotations\2.8\j2objc-
annotations-2.8.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\
opentelemetry-api\1.28.0\opentelemetry-api-1.28.0.jar;C:\Users\pavan\.m2\
repository\io\opentelemetry\opentelemetry-context\1.28.0\opentelemetry-context-
1.28.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-
exporter-logging\1.28.0\opentelemetry-exporter-logging-1.28.0.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-metrics\1.28.0\
opentelemetry-sdk-metrics-1.28.0.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-extension-incubator\1.28.0-alpha\opentelemetry-
extension-incubator-1.28.0-alpha.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-sdk-logs\1.28.0\opentelemetry-sdk-logs-
1.28.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-
common\1.28.0\opentelemetry-sdk-common-1.28.0.jar;C:\Users\pavan\.m2\repository\
io\opentelemetry\opentelemetry-sdk-extension-autoconfigure-spi\1.28.0\
opentelemetry-sdk-extension-autoconfigure-spi-1.28.0.jar;C:\Users\pavan\.m2\
repository\io\opentelemetry\opentelemetry-sdk-extension-autoconfigure\1.28.0\
opentelemetry-sdk-extension-autoconfigure-1.28.0.jar;C:\Users\pavan\.m2\
repository\io\opentelemetry\opentelemetry-api-events\1.28.0-alpha\opentelemetry-
api-events-1.28.0-alpha.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\
opentelemetry-sdk-trace\1.28.0\opentelemetry-sdk-trace-1.28.0.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk\1.28.0\opentelemetry-
sdk-1.28.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-
semconv\1.28.0-alpha\opentelemetry-semconv-1.28.0-alpha.jar;C:\Users\pavan\.m2\
repository\net\bytebuddy\byte-buddy\1.14.5\byte-buddy-1.14.5.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-os\4.15.0\selenium-os-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\apache\commons\commons-exec\1.3\
commons-exec-1.3.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-safari-driver\4.15.0\selenium-safari-driver-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-support\4.15.0\selenium-
support-4.15.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\cucumber-junit\
7.14.1\cucumber-junit-7.14.1.jar;C:\Users\pavan\.m2\repository\org\apiguardian\
apiguardian-api\1.1.2\apiguardian-api-1.1.2.jar;C:\Users\pavan\.m2\repository\
io\cucumber\cucumber-core\7.14.1\cucumber-core-7.14.1.jar;C:\Users\pavan\.m2\
repository\io\cucumber\cucumber-gherkin\7.14.1\cucumber-gherkin-7.14.1.jar;C:\
Users\pavan\.m2\repository\io\cucumber\cucumber-gherkin-messages\7.14.1\
cucumber-gherkin-messages-7.14.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\
gherkin\26.2.0\gherkin-26.2.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\
messages\22.0.0\messages-22.0.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\
tag-expressions\6.0.0\tag-expressions-6.0.0.jar;C:\Users\pavan\.m2\repository\
io\cucumber\cucumber-expressions\17.0.1\cucumber-expressions-17.0.1.jar;C:\
Users\pavan\.m2\repository\io\cucumber\datatable\7.14.1\datatable-7.14.1.jar;C:\
Users\pavan\.m2\repository\io\cucumber\cucumber-plugin\7.14.1\cucumber-plugin-
7.14.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\docstring\7.14.1\docstring-
7.14.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\html-formatter\20.4.0\html-
formatter-20.4.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\junit-xml-
formatter\0.2.0\junit-xml-formatter-0.2.0.jar;C:\Users\pavan\.m2\repository\io\
cucumber\ci-environment\10.0.0\ci-environment-10.0.0.jar;C:\Users\pavan\.m2\
repository\junit\junit\4.13.2\junit-4.13.2.jar;C:\Users\pavan\.m2\repository\
org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\pavan\.m2\
repository\io\cucumber\cucumber-java\7.14.1\cucumber-java-7.14.1.jar;C:\Users\
pavan\.m2\repository\org\apache\logging\log4j\log4j-core\2.20.0\log4j-core-
2.20.0.jar;C:\Users\pavan\.m2\repository\org\apache\logging\log4j\log4j-api\
2.20.0\log4j-api-2.20.0.jar;C:\Users\pavan\.m2\repository\org\apache\poi\poi\
5.2.3\poi-5.2.3.jar;C:\Users\pavan\.m2\repository\commons-codec\commons-codec\
1.15\commons-codec-1.15.jar;C:\Users\pavan\.m2\repository\org\apache\commons\
commons-collections4\4.4\commons-collections4-4.4.jar;C:\Users\pavan\.m2\
repository\org\apache\commons\commons-math3\3.6.1\commons-math3-3.6.1.jar;C:\
Users\pavan\.m2\repository\com\zaxxer\SparseBitSet\1.2\SparseBitSet-1.2.jar;C:\
Users\pavan\.m2\repository\org\apache\poi\poi-ooxml\5.2.3\poi-ooxml-
5.2.3.jar;C:\Users\pavan\.m2\repository\org\apache\poi\poi-ooxml-lite\5.2.3\poi-
ooxml-lite-5.2.3.jar;C:\Users\pavan\.m2\repository\org\apache\xmlbeans\xmlbeans\
5.1.1\xmlbeans-5.1.1.jar;C:\Users\pavan\.m2\repository\org\apache\commons\
commons-compress\1.21\commons-compress-1.21.jar;C:\Users\pavan\.m2\repository\
com\github\virtuald\curvesapi\1.07\curvesapi-1.07.jar;C:\Users\pavan\.m2\
repository\commons-io\commons-io\2.11.0\commons-io-2.11.0.jar;C:\Users\
pavan\.m2\repository\org\apache\commons\commons-lang3\3.12.0\commons-lang3-
3.12.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\extentreports-
cucumber7-adapter\1.14.0\extentreports-cucumber7-adapter-1.14.0.jar;C:\Users\
pavan\.m2\repository\com\aventstack\extentreports\5.1.0\extentreports-
5.1.0.jar;C:\Users\pavan\.m2\repository\io\reactivex\rxjava3\rxjava\3.1.6\
rxjava-3.1.6.jar;C:\Users\pavan\.m2\repository\org\reactivestreams\reactive-
streams\1.0.4\reactive-streams-1.0.4.jar;C:\Users\pavan\.m2\repository\org\
freemarker\freemarker\2.3.32\freemarker-2.3.32.jar;C:\Users\pavan\.m2\
repository\org\projectlombok\lombok\1.18.26\lombok-1.18.26.jar;C:\Users\
pavan\.m2\repository\com\google\code\gson\gson\2.10.1\gson-2.10.1.jar;C:\Users\
pavan\.m2\repository\tech\grasshopper\extent-pdf-report\2.12.0\extent-pdf-
report-2.12.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\cucumber-pdf-
report\2.14.0\cucumber-pdf-report-2.14.0.jar;C:\Users\pavan\.m2\repository\org\
apache\pdfbox\pdfbox\2.0.26\pdfbox-2.0.26.jar;C:\Users\pavan\.m2\repository\org\
apache\pdfbox\fontbox\2.0.26\fontbox-2.0.26.jar;C:\Users\pavan\.m2\repository\
org\knowm\xchart\xchart\3.8.0\xchart-3.8.0.jar;C:\Users\pavan\.m2\repository\de\
erichseifert\vectorgraphics2d\VectorGraphics2D\0.13\VectorGraphics2D-
0.13.jar;C:\Users\pavan\.m2\repository\de\rototor\pdfbox\graphics2d\0.30\
graphics2d-0.30.jar;C:\Users\pavan\.m2\repository\com\madgag\animated-gif-lib\
1.4\animated-gif-lib-1.4.jar;C:\Users\pavan\.m2\repository\org\yaml\snakeyaml\
2.0\snakeyaml-2.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\table-
layout\1.5.1\table-layout-1.5.1.jar;C:\Users\pavan\.m2\repository\tech\
grasshopper\rest-assured-cucumber-pdf-report\1.5.0\rest-assured-cucumber-pdf-
report-1.5.0.jar;C:\Users\pavan\.m2\repository\org\jsoup\jsoup\1.15.3\jsoup-
1.15.3.jar;C:\Users\pavan\.m2\repository\com\aventstack\klov-reporter\5.1.0\
klov-reporter-5.1.0.jar;C:\Users\pavan\.m2\repository\org\mongodb\mongodb-
driver\3.6.4\mongodb-driver-3.6.4.jar;C:\Users\pavan\.m2\repository\org\mongodb\
mongodb-driver-core\3.6.4\mongodb-driver-core-3.6.4.jar;C:\Users\pavan\.m2\
repository\org\mongodb\bson\3.6.4\bson-3.6.4.jar;C:\Users\pavan\.m2\repository\
org\apache\httpcomponents\httpclient\4.5.13\httpclient-4.5.13.jar;C:\Users\
pavan\.m2\repository\org\apache\httpcomponents\httpcore\4.4.13\httpcore-
4.4.13.jar;C:\Users\pavan\.m2\repository\commons-logging\commons-logging\1.2\
commons-logging-1.2.jar;C:\Users\pavan\.m2\repository\org\apache\httpcomponents\
httpmime\4.5.13\httpmime-4.5.13.jar;C:\Users\pavan\.m2\repository\tech\
grasshopper\htmlextentreporter\1.1.0\htmlextentreporter-1.1.0.jar;C:\Users\
pavan\.m2\repository\tech\grasshopper\extent-excel-report\1.4.0\extent-excel-
report-1.4.0.jar;C:\Users\pavan\.m2\repository\org\apache\commons\commons-email\
1.5\commons-email-1.5.jar;C:\Users\pavan\.m2\repository\com\sun\mail\javax.mail\
1.5.6\javax.mail-1.5.6.jar;C:\Users\pavan\.m2\repository\javax\activation\
activation\1.1\activation-1.1.jar;"/>

<property name="sun.cpu.endian" value="little"/>

<property name="user.home" value="C:\Users\pavan"/>

<property name="user.language" value="en"/>

<property name="java.specification.vendor" value="Oracle Corporation"/>

<property name="java.version.date" value="2022-10-18"/>


<property name="java.home" value="C:\Program Files\Java\jdk-19"/>

<property name="file.separator" value="\"/>

<property name="basedir" value="C:\workspaces\15-Sept-2023batch\


opencart_cucumber"/>

<property name="style.color" value="always"/>

<property name="java.vm.compressedOopsMode" value="32-bit"/>

<property name="line.separator" value="&#10;"/>

<property name="java.vm.specification.vendor" value="Oracle Corporation"/>

<property name="java.specification.name" value="Java Platform API


Specification"/>

<property name="surefire.real.class.path" value="C:\Users\pavan\AppData\Local\


Temp\surefire5685030077594761121\surefirebooter-20231208124802820_3.jar"/>

<property name="user.script" value=""/>

<property name="sun.management.compiler" value="HotSpot 64-Bit Tiered


Compilers"/>

<property name="java.runtime.version" value="19.0.1+10-21"/>

<property name="user.name" value="pavan"/>

<property name="stdout.encoding" value="Cp1252"/>

<property name="path.separator" value=";"/>

<property name="os.version" value="10.0"/>

<property name="java.runtime.name" value="Java(TM) SE Runtime Environment"/>

<property name="file.encoding" value="UTF-8"/>

<property name="java.vm.name" value="Java HotSpot(TM) 64-Bit Server VM"/>

<property name="localRepository" value="C:\Users\pavan\.m2\repository"/>

<property name="java.vendor.url.bug"
value="https://bugreport.java.com/bugreport/"/>

<property name="java.io.tmpdir" value="C:\Users\pavan\AppData\Local\Temp\"/>

<property name="java.version" value="19.0.1"/>

<property name="user.dir" value="C:\workspaces\15-Sept-2023batch\


opencart_cucumber"/>

<property name="os.arch" value="amd64"/>

<property name="java.vm.specification.name" value="Java Virtual Machine


Specification"/>
<property name="sun.os.patch.level" value=""/>

<property name="native.encoding" value="Cp1252"/>

<property name="java.library.path" value="C:\Program Files\Java\jdk-19\bin;C:\


WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\Parallels\
Parallels Tools\Applications;C:\Program Files\Common Files\Oracle\Java\
javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\
System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\apache-maven-
3.9.4\bin;C:\Program Files\Java\jdk-19\bin;C:\Program Files\Git\cmd;C:\Program
Files\nodejs\;C:\Program Files\Git\bin;C:\Users\pavan\AppData\Local\Microsoft\
WindowsApps;;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition
2022.1.3\bin;;C:\Program Files\JetBrains\PyCharm 2022.2.4\bin;;C:\Users\pavan\
AppData\Roaming\npm;."/>

<property name="java.vm.info" value="mixed mode, sharing"/>

<property name="stderr.encoding" value="Cp1252"/>

<property name="java.vendor" value="Oracle Corporation"/>

<property name="java.vm.version" value="19.0.1+10-21"/>

<property name="sun.io.unicode.encoding" value="UnicodeLittle"/>

<property name="java.class.version" value="63.0"/>

</properties>

<testcase name="Successful Login with Valid Credentials" classname="Login with


Valid Credentials" time="10.276">

<system-out><![CDATA[

@sanity @regression

Scenario: Successful Login with Valid Credentials


# Features/Login.feature:4

Given the user navigates to login page


# stepDefinitions.LoginSteps.user_navigate_to_login_page()

When user enters email as "[email protected]" and password as "test@123"


#
stepDefinitions.LoginSteps.user_enters_email_as_and_password_as(java.lang.String
,java.lang.String)

And the user clicks on the Login button


# stepDefinitions.LoginSteps.click_on_login_button()

Then the user should be redirected to the MyAccount Page


# stepDefinitions.LoginSteps.user_navigates_to_my_account_page()

]]></system-out>

</testcase>
<testcase name="Successful Account Registration" classname="Account
Registration" time="7.317">

<system-out><![CDATA[

Scenario: Successful Account Registration #


Features/Registration.feature:3

Given the user navigates to Register Account page #


stepDefinitions.RegistrationSteps.user_navigates_to_register_account_page()

When the user enters the details into below fields #


stepDefinitions.RegistrationSteps.user_enters_the_details_into_below_fields(io.c
ucumber.datatable.DataTable)

| firstName | John |

| lastName | Kenedy |

| telephone | 1234567890 |

| password | test@123 |

And the user selects Privacy Policy #


stepDefinitions.RegistrationSteps.user_selects_privacy_policy()

And the user clicks on Continue button #


stepDefinitions.RegistrationSteps.user_clicks_on_continue_button()

Then the user account should get created successfully #


stepDefinitions.RegistrationSteps.user_account_should_get_created_successfully()

]]></system-out>

</testcase>

</testsuite>

<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>opencart_cucumber_framework</groupId>

<artifactId>opencart_cucumber_framework</artifactId>

<version>0.0.1-SNAPSHOT</version>

<packaging>jar</packaging>
<name>opencart_cucumber_framework</name>

<url>http://maven.apache.org</url>

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

</properties>

<build>

<pluginManagement>

<plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-compiler-plugin</artifactId>

<version>3.11.0</version>

</plugin>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-surefire-plugin</artifactId>

<version>3.1.2</version>

</plugin>

</plugins>

</pluginManagement>

</build>

<dependencies>

<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java --
>
<dependency>

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

<artifactId>selenium-java</artifactId>

<version>4.20.0</version>

</dependency>

<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-junit -->

<dependency>

<groupId>io.cucumber</groupId>

<artifactId>cucumber-junit</artifactId>

<version>7.17.0</version>

<scope>test</scope>

</dependency>

<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-java -->

<dependency>

<groupId>io.cucumber</groupId>

<artifactId>cucumber-java</artifactId>

<version>7.17.0</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->

<dependency>

<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-core</artifactId>

<version>2.20.0</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api -->

<dependency>
<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-api</artifactId>

<version>2.20.0</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->

<dependency>

<groupId>org.apache.poi</groupId>

<artifactId>poi</artifactId>

<version>5.2.3</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->

<dependency>

<groupId>org.apache.poi</groupId>

<artifactId>poi-ooxml</artifactId>

<version>5.2.3</version>

</dependency>

<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->

<dependency>

<groupId>commons-io</groupId>

<artifactId>commons-io</artifactId>

<version>2.11.0</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->

<dependency>

<groupId>org.apache.commons</groupId>

<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>

</dependency>

<!-- https://mvnrepository.com/artifact/tech.grasshopper/extentreports-
cucumber7-adapter/1.14.0 -->

<dependency>

<groupId>tech.grasshopper</groupId>

<artifactId>extentreports-cucumber7-adapter</artifactId>

<version>1.14.0</version>

</dependency>

</dependencies>

</project>

<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>opencart_cucumber_framework</groupId>

<artifactId>opencart_cucumber_framework</artifactId>

<version>0.0.1-SNAPSHOT</version>

<packaging>jar</packaging>

<name>opencart_cucumber_framework</name>

<url>http://maven.apache.org</url>

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<build>

<pluginManagement>

<plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-compiler-plugin</artifactId>

<version>3.11.0</version>

</plugin>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-surefire-plugin</artifactId>

<version>3.1.2</version>

</plugin>

</plugins>

</pluginManagement>

</build>

<dependencies>

<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java --
>

<dependency>

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

<artifactId>selenium-java</artifactId>

<version>4.15.0</version>

</dependency>
<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-junit -->

<dependency>

<groupId>io.cucumber</groupId>

<artifactId>cucumber-junit</artifactId>

<version>7.14.1</version>

<scope>test</scope>

</dependency>

<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-java -->

<dependency>

<groupId>io.cucumber</groupId>

<artifactId>cucumber-java</artifactId>

<version>7.14.1</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->

<dependency>

<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-core</artifactId>

<version>2.20.0</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api -->

<dependency>

<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-api</artifactId>

<version>2.20.0</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->


<dependency>

<groupId>org.apache.poi</groupId>

<artifactId>poi</artifactId>

<version>5.2.3</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->

<dependency>

<groupId>org.apache.poi</groupId>

<artifactId>poi-ooxml</artifactId>

<version>5.2.3</version>

</dependency>

<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->

<dependency>

<groupId>commons-io</groupId>

<artifactId>commons-io</artifactId>

<version>2.11.0</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->

<dependency>

<groupId>org.apache.commons</groupId>

<artifactId>commons-lang3</artifactId>

<version>3.12.0</version>

</dependency>

<!-- https://mvnrepository.com/artifact/com.aventstack/extentreports-cucumber4-
adapter -->

<dependency>
<groupId>tech.grasshopper</groupId>

<artifactId>extentreports-cucumber7-adapter</artifactId>

<version>1.14.0</version>

</dependency>

</dependencies>

</project>

package factory;

import java.io.FileReader;

import java.io.IOException;

import java.net.URL;

import java.time.Duration;

import java.util.Properties;

import org.apache.commons.lang3.RandomStringUtils;

import org.apache.logging.log4j.LogManager;

import org.apache.logging.log4j.Logger;

import org.openqa.selenium.Platform;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.edge.EdgeDriver;

import org.openqa.selenium.remote.DesiredCapabilities;

import org.openqa.selenium.remote.RemoteWebDriver;

public class BaseClass {

static WebDriver driver;


static Properties p;

static Logger logger;

public static WebDriver initilizeBrowser() throws IOException

if(getProperties().getProperty("execution_env").equalsIgnoreCase("remote"))

DesiredCapabilities capabilities = new DesiredCapabilities();

//os

if (getProperties().getProperty("os").equalsIgnoreCase("windows")) {

capabilities.setPlatform(Platform.WIN11);

} else if (getProperties().getProperty("os").equalsIgnoreCase("mac")) {

capabilities.setPlatform(Platform.MAC);

} else {

System.out.println("No matching OS..");

//browser

switch (getProperties().getProperty("browser").toLowerCase()) {

case "chrome":

capabilities.setBrowserName("chrome");

break;

case "edge":

capabilities.setBrowserName("MicrosoftEdge");

break;

default:

System.out.println("No matching browser");

}
driver = new RemoteWebDriver(new
URL("http://localhost:4444/wd/hub"),capabilities);

else if(getProperties().getProperty("execution_env").equalsIgnoreCase("local"))

switch(getProperties().getProperty("browser").toLowerCase())

case "chrome":

driver=new ChromeDriver();

break;

case "edge":

driver=new EdgeDriver();

break;

default:

System.out.println("No matching browser");

driver=null;

driver.manage().deleteAllCookies();

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

driver.manage().timeouts().pageLoadTimeout(Duration.ofSeconds(5));

return driver;

public static WebDriver getDriver() {

return driver;

}
public static Properties getProperties() throws IOException

FileReader file=new FileReader(System.getProperty("user.dir")+"\\src\\test\\


resources\\config.properties");

p=new Properties();

p.load(file);

return p;

public static Logger getLogger()

logger=LogManager.getLogger(); //Log4j

return logger;

public static String randomeString()

String generatedString=RandomStringUtils.randomAlphabetic(5);

return generatedString;

public static String randomeNumber()

String generatedString=RandomStringUtils.randomNumeric(10);

return generatedString;

public static String randomAlphaNumeric()


{

String str=RandomStringUtils.randomAlphabetic(5);

String num=RandomStringUtils.randomNumeric(10);

return str+num;

package pageObjects;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.support.FindBy;

public class AccountRegistrationPage extends BasePage {

public AccountRegistrationPage(WebDriver driver) {

super(driver);

// Elements

@FindBy(name = "firstname")

WebElement txtFirstname;

@FindBy(name = "lastname")

WebElement txtLasttname;

@FindBy(name = "email")

WebElement txtEmail;
@FindBy(name = "telephone")

WebElement txtTelephone;

@FindBy(name = "password")

WebElement txtPassword;

@FindBy(name = "confirm")

WebElement txtConfirmPassword;

@FindBy(name = "agree")

WebElement chkdPolicy;

@FindBy(xpath = "//input[@value='Continue']")

WebElement btnContinue;

@FindBy(xpath = "//h1[normalize-space()='Your Account Has Been Created!']")

WebElement msgConfirmation;

public void setFirstName(String fname) {

txtFirstname.sendKeys(fname);

public void setLastName(String lname) {

txtLasttname.sendKeys(lname);

public void setEmail(String email) {

txtEmail.sendKeys(email);
}

public void setTelephone(String tel) {

txtTelephone.sendKeys(tel);

public void setPassword(String pwd) {

txtPassword.sendKeys(pwd);

public void setConfirmPassword(String pwd) {

txtConfirmPassword.sendKeys(pwd);

public void setPrivacyPolicy() {

chkdPolicy.click();

public void clickContinue() {

btnContinue.click();

public String getConfirmationMsg() {

try {
return (msgConfirmation.getText());

} catch (Exception e) {

return (e.getMessage());

package pageObjects;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.support.PageFactory;

public class BasePage {

WebDriver driver;

public BasePage(WebDriver driver)

this.driver=driver;

PageFactory.initElements(driver,this);

package pageObjects;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;

import org.openqa.selenium.support.FindBy;

import org.openqa.selenium.support.ui.Select;

public class CheckoutPage extends BasePage{

public CheckoutPage(WebDriver driver)

super(driver);

@FindBy(xpath="//input[@id='input-payment-firstname']")

WebElement txtfirstName;

@FindBy(xpath="//input[@id='input-payment-lastname']")

WebElement txtlastName;

@FindBy(xpath="//input[@id='input-payment-address-1']")

WebElement txtaddress1;

@FindBy(xpath="//input[@id='input-payment-address-2']")

WebElement txtaddress2;

@FindBy(xpath="//input[@id='input-payment-city']")

WebElement txtcity;

@FindBy(xpath="//input[@id='input-payment-postcode']")

WebElement txtpin;

@FindBy(xpath="//select[@id='input-payment-country']")
WebElement drpCountry;

@FindBy(xpath="//select[@id='input-payment-zone']")

WebElement drpState;

@FindBy(xpath="//input[@id='button-payment-address']")

WebElement btncontinueBillingAddress;

@FindBy(xpath="//input[@id='button-shipping-address']")

WebElement btncontinueDeliveryAddress;

@FindBy(xpath="//textarea[@name='comment']")

WebElement txtDeliveryMethod;

@FindBy(xpath="//input[@id='button-shipping-method']")

WebElement btncontinueShippingAddress;

@FindBy(xpath="//input[@name='agree']")

WebElement chkboxTerms;

@FindBy(xpath="//input[@id='button-payment-method']")

WebElement btncontinuePaymentMethod;

@FindBy(xpath="//strong[text()='Total:']//following::td")

WebElement lblTotalPrice;

@FindBy(xpath="//input[@id='button-confirm']")

WebElement btnConfOrder;

@FindBy(xpath="//*[@id='content']/h1")
WebElement lblOrderConMsg;

public void setfirstName(String firstName) {

txtfirstName.sendKeys(firstName);

public void setlastName(String lastName) {

txtlastName.sendKeys(lastName);

public void setaddress1(String address1) {

txtaddress1.sendKeys(address1);

public void setaddress2(String address2) {

txtaddress2.sendKeys(address2);

public void setcity(String city) {

txtcity.sendKeys(city);

public void setpin(String pin) {

txtpin.sendKeys(pin);

public void setCountry(String Country) {

new Select(drpCountry).selectByVisibleText(Country);

}
public void setState(String State) {

new Select(drpState).selectByVisibleText(State);

public void clickOnContinueAfterBillingAddress()

btncontinueBillingAddress.click();

public void clickOnContinueAfterDeliveryAddress()

btncontinueDeliveryAddress.click();

public void setDeliveryMethodComment(String deliverymsg)

txtDeliveryMethod.sendKeys(deliverymsg);

public void clickOnContinueAfterDeliveryMethod()

btncontinueShippingAddress.click();

public void selectTermsAndConditions()

chkboxTerms.click();

}
public void clickOnContinueAfterPaymentMethod()

btncontinuePaymentMethod.click();

public String getTotalPriceBeforeConfOrder()

return lblTotalPrice.getText(); //$207.00

public void clickOnConfirmOrder() {

btnConfOrder.click();

public boolean isOrderPlaced() throws InterruptedException

try

driver.switchTo().alert().accept();

Thread.sleep(2000);

btnConfOrder.click();

Thread.sleep(3000);

if(lblOrderConMsg.getText().equals("Your order has been placed!"))

return true;

else

return false;

}catch(Exception e)

return false;
}

package pageObjects;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.support.FindBy;

public class HomePage extends BasePage {

public HomePage(WebDriver driver) {

super(driver);

// Elements

@FindBy(xpath = "//span[text()='My Account']")

WebElement lnkMyaccount;

@FindBy(linkText = "Register")

WebElement lnkRegister;

@FindBy(linkText = "Login") // Login link added in step6

WebElement linkLogin;

@FindBy(xpath="//input[@placeholder='Search']") //For Search Product Test

WebElement txtSearchbox;
@FindBy(xpath="//div[@id='search']//button[@type='button']") //For Search
Product Test

WebElement btnSearch;

// Action Methods

public void clickMyAccount() {

lnkMyaccount.click();

public void clickRegister() {

lnkRegister.click();

public void clickLogin() // added in step6

linkLogin.click();

public void enterProductName(String pName) //For Search Product Test

txtSearchbox.sendKeys(pName);

public void clickSearch() //For Search Product Test

btnSearch.click();

}
package pageObjects;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.support.FindBy;

public class LoginPage extends BasePage {

public LoginPage(WebDriver driver) {

super(driver);

@FindBy(xpath = "//input[@id='input-email']")

WebElement txtEmailAddress;

@FindBy(xpath = "//input[@id='input-password']")

WebElement txtPassword;

@FindBy(xpath = "//input[@value='Login']")

WebElement btnLogin;

public void setEmail(String email) {

txtEmailAddress.sendKeys(email);

public void setPassword(String pwd) {

txtPassword.sendKeys(pwd);

}
public void clickLogin() {

btnLogin.click();

package pageObjects;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.support.FindBy;

public class MyAccountPage extends BasePage {

public MyAccountPage(WebDriver driver) {

super(driver);

@FindBy(xpath = "//h2[text()='My Account']") // MyAccount Page heading

WebElement msgHeading;

@FindBy(xpath = "//div[@class='list-group']//a[text()='Logout']")

WebElement lnkLogout;

public boolean isMyAccountPageExists() // MyAccount Page heading display


status

try {

return (msgHeading.isDisplayed());

} catch (Exception e) {
return (false);

public void clickLogout() {

lnkLogout.click();

package pageObjects;

import java.util.List;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.support.FindBy;

public class SearchPage extends BasePage

WebDriver driver;

public SearchPage(WebDriver driver)

super(driver);

@FindBy(xpath="//*[@id='content']/div[3]//img")

List<WebElement> searchProducts;
@FindBy(xpath="//input[@id='input-quantity']")

WebElement txtquantity;

@FindBy(xpath="//button[@id='button-cart']")

WebElement btnaddToCart;

@FindBy(xpath="//div[contains(text(),'Success: You have added')]")

WebElement cnfMsg;

public boolean isProductExist(String productName)

boolean flag=false;

for(WebElement product:searchProducts)

if(product.getAttribute("title").equals(productName))

flag=true;

break;

return flag;

public void selectProduct(String productName)

for(WebElement product:searchProducts)

{
if(product.getAttribute("title").equals(productName))

product.click();

public void setQuantity(String qty)

txtquantity.clear();

txtquantity.sendKeys(qty);

public void addToCart()

btnaddToCart.click();

public boolean checkConfMsg()

try

return cnfMsg.isDisplayed();

catch(Exception e)

return false;

}
}

package pageObjects;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.support.FindBy;

public class ShoppingCartPage extends BasePage

public ShoppingCartPage(WebDriver driver)

super(driver);

//@FindBy(xpath="//button[@aria-expanded='false']")

@FindBy(xpath="//div[@id='cart']")

WebElement btnItems;

@FindBy(xpath="//strong[normalize-space()='View Cart']")

WebElement lnkViewCart;

@FindBy(xpath="//*[@id='content']/div[2]/div/table//strong[text()='Total:']//
following::td")

WebElement lblTotalPrice; //$246.40

@FindBy(xpath="//a[text()='Checkout']")

WebElement btnCheckout;
public void clickItemsToNavigateToCart()

btnItems.click();

public void clickViewCart()

lnkViewCart.click();

public String getTotalPrice()

return lblTotalPrice.getText();

public void clickOnCheckout()

btnCheckout.click();

package stepDefinitions;

import java.io.IOException;

import java.util.Properties;

import org.openqa.selenium.OutputType;

import org.openqa.selenium.TakesScreenshot;

import org.openqa.selenium.WebDriver;
import factory.BaseClass;

import io.cucumber.java.After;

import io.cucumber.java.AfterStep;

import io.cucumber.java.Before;

import io.cucumber.java.Scenario;

public class Hooks {

WebDriver driver;

Properties p;

@Before

public void setup() throws IOException

driver=BaseClass.initilizeBrowser();

p=BaseClass.getProperties();

driver.get(p.getProperty("appURL"));

driver.manage().window().maximize();

@After

public void tearDown(Scenario scenario) {

driver.quit();

@AfterStep
public void addScreenshot(Scenario scenario) {

// this is for cucumber junit report

if(scenario.isFailed()) {

TakesScreenshot ts=(TakesScreenshot) driver;

byte[] screenshot=ts.getScreenshotAs(OutputType.BYTES);

scenario.attach(screenshot, "image/png",scenario.getName());

package stepDefinitions;

import java.util.HashMap;

import java.util.List;

import org.junit.Assert;

import org.openqa.selenium.WebDriver;

import factory.BaseClass;

import io.cucumber.java.en.Given;

import io.cucumber.java.en.Then;

import io.cucumber.java.en.When;

import pageObjects.HomePage;

import pageObjects.LoginPage;

import pageObjects.MyAccountPage;
import utilities.DataReader;

public class LoginSteps {

WebDriver driver;

HomePage hp;

LoginPage lp;

MyAccountPage macc;

List<HashMap<String, String>> datamap; //Data driven

@Given("the user navigates to login page")

public void user_navigate_to_login_page() {

BaseClass.getLogger().info("Goto my account-->Click on Login.. ");

hp=new HomePage(BaseClass.getDriver());

hp.clickMyAccount();

hp.clickLogin();

@When("user enters email as {string} and password as {string}")

public void user_enters_email_as_and_password_as(String email, String pwd) {

BaseClass.getLogger().info("Entering email and password.. ");

lp=new LoginPage(BaseClass.getDriver());

lp.setEmail(email);

lp.setPassword(pwd);

}
@When("the user clicks on the Login button")

public void click_on_login_button() {

lp.clickLogin();

BaseClass.getLogger().info("clicked on login button...");

@Then("the user should be redirected to the MyAccount Page")

public void user_navigates_to_my_account_page() {

macc=new MyAccountPage(BaseClass.getDriver());

boolean targetpage=macc.isMyAccountPageExists();

Assert.assertEquals(targetpage, true);

//******* Data Driven test **************

@Then("the user should be redirected to the MyAccount Page by passing email and
password with excel row {string}")

public void
check_user_navigates_to_my_account_page_by_passing_email_and_password_with_excel
_data(String rows)

datamap=DataReader.data(System.getProperty("user.dir")+"\\testData\\
Opencart_LoginData.xlsx", "Sheet1");

int index=Integer.parseInt(rows)-1;

String email= datamap.get(index).get("username");

String pwd= datamap.get(index).get("password");

String exp_res= datamap.get(index).get("res");

lp=new LoginPage(BaseClass.getDriver());
lp.setEmail(email);

lp.setPassword(pwd);

lp.clickLogin();

macc=new MyAccountPage(BaseClass.getDriver());

try

boolean targetpage=macc.isMyAccountPageExists();

System.out.println("target page: "+ targetpage);

if(exp_res.equals("Valid"))

if(targetpage==true)

MyAccountPage myaccpage=new MyAccountPage(BaseClass.getDriver());

myaccpage.clickLogout();

Assert.assertTrue(true);

else

Assert.assertTrue(false);

if(exp_res.equals("Invalid"))

if(targetpage==true)

macc.clickLogout();

Assert.assertTrue(false);

}
else

Assert.assertTrue(true);

catch(Exception e)

Assert.assertTrue(false);

package stepDefinitions;

import java.util.Map;

import org.junit.Assert;

import org.openqa.selenium.WebDriver;

import factory.BaseClass;

import io.cucumber.datatable.DataTable;

import io.cucumber.java.en.Given;

import io.cucumber.java.en.Then;

import io.cucumber.java.en.When;

import pageObjects.AccountRegistrationPage;

import pageObjects.HomePage;
import pageObjects.LoginPage;

public class RegistrationSteps {

WebDriver driver;

HomePage hp;

LoginPage lp;

AccountRegistrationPage regpage;

@Given("the user navigates to Register Account page")

public void user_navigates_to_register_account_page() {

hp=new HomePage(BaseClass.getDriver());

hp.clickMyAccount();

hp.clickRegister();

@When("the user enters the details into below fields")

public void user_enters_the_details_into_below_fields(DataTable dataTable) {

Map<String, String> dataMap = dataTable.asMap(String.class,String.class);

regpage=new AccountRegistrationPage(BaseClass.getDriver());

regpage.setFirstName(dataMap.get("firstName"));

regpage.setLastName(dataMap.get("lastName"));

regpage.setEmail(BaseClass.randomAlphaNumeric()+"@gmail.com");

regpage.setTelephone(dataMap.get("telephone"));

regpage.setPassword(dataMap.get("password"));

regpage.setConfirmPassword(dataMap.get("password"));
}

@When("the user selects Privacy Policy")

public void user_selects_privacy_policy() {

regpage.setPrivacyPolicy();

@When("the user clicks on Continue button")

public void user_clicks_on_continue_button() {

regpage.clickContinue();

@Then("the user account should get created successfully")

public void user_account_should_get_created_successfully() {

String confmsg=regpage.getConfirmationMsg();

Assert.assertEquals(confmsg, "Your Account Has Been Created!");

package testRunner;

import org.junit.runner.RunWith;

import io.cucumber.junit.Cucumber;

import io.cucumber.junit.CucumberOptions;

@RunWith(Cucumber.class)

@CucumberOptions(
//features= {".//Features/"},

//features= {".//Features/Login.feature"},

//features= {".//Features/LoginDDTExcel.feature"},

features= {".//Features/Login.feature",".//Features/Registration.feature"},

//features= {"@target/rerun.txt"},

glue="stepDefinitions",

plugin= {"pretty", "html:reports/myreport.html",

"rerun:target/rerun.txt",

"com.aventstack.extentreports.cucumber.adapter.ExtentCucumberAdapter:"

},

dryRun=false, // checks mapping between scenario steps and step definition


methods

monochrome=true, // to avoid junk characters in output

publish=true // to publish report in cucumber server

//tags="@sanity" // this will execute scenarios tagged with @sanity

//tags="@regression"

//tags="@sanity and @regression" //Scenarios tagged with both @sanity and


@regression

//tags="@sanity and not @regression" //Scenarios tagged with @sanity but not
tagged with @regression

//tags="@sanity or @regression" //Scenarios tagged with either @sanity or


@regression

public class TestRunner {

package utilities;

import java.io.FileInputStream;

import java.util.ArrayList;
import java.util.HashMap;

import java.util.List;

import org.apache.poi.ss.usermodel.Cell;

import org.apache.poi.ss.usermodel.Row;

import org.apache.poi.xssf.usermodel.XSSFSheet;

import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class DataReader {

public static HashMap<String, String> storeValues = new HashMap();

public static List<HashMap<String, String>> data(String filepath, String


sheetName) {

List<HashMap<String, String>> mydata = new ArrayList<>();

try {

FileInputStream fs = new FileInputStream(filepath);

XSSFWorkbook workbook = new XSSFWorkbook(fs);

XSSFSheet sheet = workbook.getSheet(sheetName);

Row HeaderRow = sheet.getRow(0);

for (int i = 1; i < sheet.getPhysicalNumberOfRows(); i++)

Row currentRow = sheet.getRow(i);

HashMap<String, String> currentHash = new HashMap<String, String>();

for (int j = 0; j < currentRow.getPhysicalNumberOfCells(); j++)

Cell currentCell = currentRow.getCell(j);

switch (currentCell.getCellType())
{

case STRING:

currentHash.put(HeaderRow.getCell(j).getStringCellValue(),
currentCell.getStringCellValue());

break;

mydata.add(currentHash);

fs.close();

} catch (Exception e) {

e.printStackTrace();

return mydata;

<?xml version="1.0" encoding="UTF-8"?>

<Configuration status="WARN">

<Properties>

<Property name="basePath">./logs</Property>

</Properties>

<Appenders>

<Console name="Console" target="SYSTEM_OUT">

<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>

</Console>

<RollingFile name="File" fileName="${basePath}/automation.log" filePattern="$


{basePath}/automation-%d{yyyy-MM-dd}.log">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level - %msg%n"/>

<SizeBasedTriggeringPolicy size="50000" />

</RollingFile>

</Appenders>

<Loggers>

<Root level="All"> <!-- Here you can use multiple log levels All <
Trace < Debug < Info < Warn < Error < Fatal < Off -->

<AppenderRef ref="File"/> <!-- <AppenderRef ref="Console"/> -->

</Root>

</Loggers>

</Configuration>

file:Features/Login.feature:4

<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>opencart_cucumber_framework</groupId>

<artifactId>opencart_cucumber_framework</artifactId>

<version>0.0.1-SNAPSHOT</version>

<packaging>jar</packaging>

<name>opencart_cucumber_framework</name>

<url>http://maven.apache.org</url>

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<build>

<pluginManagement>

<plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-compiler-plugin</artifactId>

<version>3.11.0</version>

</plugin>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-surefire-plugin</artifactId>

<version>3.1.2</version>

</plugin>

</plugins>

</pluginManagement>

</build>

<dependencies>

<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java --
>

<dependency>

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

<artifactId>selenium-java</artifactId>

<version>4.15.0</version>

</dependency>
<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-junit -->

<dependency>

<groupId>io.cucumber</groupId>

<artifactId>cucumber-junit</artifactId>

<version>7.14.1</version>

<scope>test</scope>

</dependency>

<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-java -->

<dependency>

<groupId>io.cucumber</groupId>

<artifactId>cucumber-java</artifactId>

<version>7.14.1</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->

<dependency>

<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-core</artifactId>

<version>2.20.0</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api -->

<dependency>

<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-api</artifactId>

<version>2.20.0</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->


<dependency>

<groupId>org.apache.poi</groupId>

<artifactId>poi</artifactId>

<version>5.2.3</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->

<dependency>

<groupId>org.apache.poi</groupId>

<artifactId>poi-ooxml</artifactId>

<version>5.2.3</version>

</dependency>

<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->

<dependency>

<groupId>commons-io</groupId>

<artifactId>commons-io</artifactId>

<version>2.11.0</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->

<dependency>

<groupId>org.apache.commons</groupId>

<artifactId>commons-lang3</artifactId>

<version>3.12.0</version>

</dependency>

<!-- https://mvnrepository.com/artifact/com.aventstack/extentreports-cucumber4-
adapter -->

<dependency>
<groupId>tech.grasshopper</groupId>

<artifactId>extentreports-cucumber7-adapter</artifactId>

<version>1.14.0</version>

</dependency>

</dependencies>

</project>

-------------------------------------------------------------------------------

Test set: Account Registration

-------------------------------------------------------------------------------

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 7.746 s - in


Account Registration

-------------------------------------------------------------------------------

Test set: Login with Valid Credentials

-------------------------------------------------------------------------------

Tests run: 2, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 0.422 s <<<


FAILURE! - in Login with Valid Credentials

Login with Valid Credentials.Successful Login with Valid Credentials Time


elapsed: 0.422 s <<< ERROR!

java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)"


because the return value of "java.util.Properties.getProperty(String)" is null

at factory.BaseClass.initilizeBrowser(BaseClass.java:27)

at stepDefinitions.Hooks.setup(Hooks.java:24)

Login with Valid Credentials.Successful Login with Valid Credentials Time


elapsed: 0 s <<< ERROR!

java.lang.NullPointerException: Cannot invoke


"org.openqa.selenium.WebDriver.quit()" because "this.driver" is null

at stepDefinitions.Hooks.tearDown(Hooks.java:37)
<?xml version="1.0" encoding="UTF-8"?>

<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-
plugin/xsd/surefire-test-report-3.0.xsd" version="3.0" name="Account
Registration" time="7.746" tests="1" errors="0" skipped="0" failures="0">

<properties>

<property name="java.specification.version" value="19"/>

<property name="sun.cpu.isalist" value="amd64"/>

<property name="sun.jnu.encoding" value="Cp1252"/>

<property name="java.class.path" value="C:\workspaces\16-June-2023batch\


opencart_sept2023_cucumber\target\test-classes;C:\workspaces\16-June-2023batch\
opencart_sept2023_cucumber\target\classes;C:\Users\pavan\.m2\repository\org\
seleniumhq\selenium\selenium-java\4.15.0\selenium-java-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-api\4.15.0\selenium-api-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-
chrome-driver\4.15.0\selenium-chrome-driver-4.15.0.jar;C:\Users\pavan\.m2\
repository\com\google\auto\service\auto-service-annotations\1.1.1\auto-service-
annotations-1.1.1.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-chromium-driver\4.15.0\selenium-chromium-driver-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-json\4.15.0\selenium-json-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-
manager\4.15.0\selenium-manager-4.15.0.jar;C:\Users\pavan\.m2\repository\org\
seleniumhq\selenium\selenium-devtools-v117\4.15.0\selenium-devtools-v117-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-
devtools-v118\4.15.0\selenium-devtools-v118-4.15.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-devtools-v119\4.15.0\selenium-
devtools-v119-4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-devtools-v85\4.15.0\selenium-devtools-v85-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-edge-driver\4.15.0\
selenium-edge-driver-4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-firefox-driver\4.15.0\selenium-firefox-driver-4.15.0.jar;C:\
Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-http\4.15.0\
selenium-http-4.15.0.jar;C:\Users\pavan\.m2\repository\dev\failsafe\failsafe\
3.3.2\failsafe-3.3.2.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-ie-driver\4.15.0\selenium-ie-driver-4.15.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-remote-driver\4.15.0\selenium-
remote-driver-4.15.0.jar;C:\Users\pavan\.m2\repository\com\google\guava\guava\
32.1.2-jre\guava-32.1.2-jre.jar;C:\Users\pavan\.m2\repository\com\google\guava\
failureaccess\1.0.1\failureaccess-1.0.1.jar;C:\Users\pavan\.m2\repository\com\
google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\
listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;C:\Users\
pavan\.m2\repository\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;C:\
Users\pavan\.m2\repository\org\checkerframework\checker-qual\3.33.0\checker-
qual-3.33.0.jar;C:\Users\pavan\.m2\repository\com\google\errorprone\
error_prone_annotations\2.18.0\error_prone_annotations-2.18.0.jar;C:\Users\
pavan\.m2\repository\com\google\j2objc\j2objc-annotations\2.8\j2objc-
annotations-2.8.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\
opentelemetry-api\1.28.0\opentelemetry-api-1.28.0.jar;C:\Users\pavan\.m2\
repository\io\opentelemetry\opentelemetry-context\1.28.0\opentelemetry-context-
1.28.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-
exporter-logging\1.28.0\opentelemetry-exporter-logging-1.28.0.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-metrics\1.28.0\
opentelemetry-sdk-metrics-1.28.0.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-extension-incubator\1.28.0-alpha\opentelemetry-
extension-incubator-1.28.0-alpha.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-sdk-logs\1.28.0\opentelemetry-sdk-logs-
1.28.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-
common\1.28.0\opentelemetry-sdk-common-1.28.0.jar;C:\Users\pavan\.m2\repository\
io\opentelemetry\opentelemetry-sdk-extension-autoconfigure-spi\1.28.0\
opentelemetry-sdk-extension-autoconfigure-spi-1.28.0.jar;C:\Users\pavan\.m2\
repository\io\opentelemetry\opentelemetry-sdk-extension-autoconfigure\1.28.0\
opentelemetry-sdk-extension-autoconfigure-1.28.0.jar;C:\Users\pavan\.m2\
repository\io\opentelemetry\opentelemetry-api-events\1.28.0-alpha\opentelemetry-
api-events-1.28.0-alpha.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\
opentelemetry-sdk-trace\1.28.0\opentelemetry-sdk-trace-1.28.0.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk\1.28.0\opentelemetry-
sdk-1.28.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-
semconv\1.28.0-alpha\opentelemetry-semconv-1.28.0-alpha.jar;C:\Users\pavan\.m2\
repository\net\bytebuddy\byte-buddy\1.14.5\byte-buddy-1.14.5.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-os\4.15.0\selenium-os-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\apache\commons\commons-exec\1.3\
commons-exec-1.3.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-safari-driver\4.15.0\selenium-safari-driver-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-support\4.15.0\selenium-
support-4.15.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\cucumber-junit\
7.14.1\cucumber-junit-7.14.1.jar;C:\Users\pavan\.m2\repository\org\apiguardian\
apiguardian-api\1.1.2\apiguardian-api-1.1.2.jar;C:\Users\pavan\.m2\repository\
io\cucumber\cucumber-core\7.14.1\cucumber-core-7.14.1.jar;C:\Users\pavan\.m2\
repository\io\cucumber\cucumber-gherkin\7.14.1\cucumber-gherkin-7.14.1.jar;C:\
Users\pavan\.m2\repository\io\cucumber\cucumber-gherkin-messages\7.14.1\
cucumber-gherkin-messages-7.14.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\
gherkin\26.2.0\gherkin-26.2.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\
messages\22.0.0\messages-22.0.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\
tag-expressions\6.0.0\tag-expressions-6.0.0.jar;C:\Users\pavan\.m2\repository\
io\cucumber\cucumber-expressions\17.0.1\cucumber-expressions-17.0.1.jar;C:\
Users\pavan\.m2\repository\io\cucumber\datatable\7.14.1\datatable-7.14.1.jar;C:\
Users\pavan\.m2\repository\io\cucumber\cucumber-plugin\7.14.1\cucumber-plugin-
7.14.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\docstring\7.14.1\docstring-
7.14.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\html-formatter\20.4.0\html-
formatter-20.4.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\junit-xml-
formatter\0.2.0\junit-xml-formatter-0.2.0.jar;C:\Users\pavan\.m2\repository\io\
cucumber\ci-environment\10.0.0\ci-environment-10.0.0.jar;C:\Users\pavan\.m2\
repository\junit\junit\4.13.2\junit-4.13.2.jar;C:\Users\pavan\.m2\repository\
org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\pavan\.m2\
repository\io\cucumber\cucumber-java\7.14.1\cucumber-java-7.14.1.jar;C:\Users\
pavan\.m2\repository\org\apache\logging\log4j\log4j-core\2.20.0\log4j-core-
2.20.0.jar;C:\Users\pavan\.m2\repository\org\apache\logging\log4j\log4j-api\
2.20.0\log4j-api-2.20.0.jar;C:\Users\pavan\.m2\repository\org\apache\poi\poi\
5.2.3\poi-5.2.3.jar;C:\Users\pavan\.m2\repository\commons-codec\commons-codec\
1.15\commons-codec-1.15.jar;C:\Users\pavan\.m2\repository\org\apache\commons\
commons-collections4\4.4\commons-collections4-4.4.jar;C:\Users\pavan\.m2\
repository\org\apache\commons\commons-math3\3.6.1\commons-math3-3.6.1.jar;C:\
Users\pavan\.m2\repository\com\zaxxer\SparseBitSet\1.2\SparseBitSet-1.2.jar;C:\
Users\pavan\.m2\repository\org\apache\poi\poi-ooxml\5.2.3\poi-ooxml-
5.2.3.jar;C:\Users\pavan\.m2\repository\org\apache\poi\poi-ooxml-lite\5.2.3\poi-
ooxml-lite-5.2.3.jar;C:\Users\pavan\.m2\repository\org\apache\xmlbeans\xmlbeans\
5.1.1\xmlbeans-5.1.1.jar;C:\Users\pavan\.m2\repository\org\apache\commons\
commons-compress\1.21\commons-compress-1.21.jar;C:\Users\pavan\.m2\repository\
com\github\virtuald\curvesapi\1.07\curvesapi-1.07.jar;C:\Users\pavan\.m2\
repository\commons-io\commons-io\2.11.0\commons-io-2.11.0.jar;C:\Users\
pavan\.m2\repository\org\apache\commons\commons-lang3\3.12.0\commons-lang3-
3.12.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\extentreports-
cucumber7-adapter\1.14.0\extentreports-cucumber7-adapter-1.14.0.jar;C:\Users\
pavan\.m2\repository\com\aventstack\extentreports\5.1.0\extentreports-
5.1.0.jar;C:\Users\pavan\.m2\repository\io\reactivex\rxjava3\rxjava\3.1.6\
rxjava-3.1.6.jar;C:\Users\pavan\.m2\repository\org\reactivestreams\reactive-
streams\1.0.4\reactive-streams-1.0.4.jar;C:\Users\pavan\.m2\repository\org\
freemarker\freemarker\2.3.32\freemarker-2.3.32.jar;C:\Users\pavan\.m2\
repository\org\projectlombok\lombok\1.18.26\lombok-1.18.26.jar;C:\Users\
pavan\.m2\repository\com\google\code\gson\gson\2.10.1\gson-2.10.1.jar;C:\Users\
pavan\.m2\repository\tech\grasshopper\extent-pdf-report\2.12.0\extent-pdf-
report-2.12.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\cucumber-pdf-
report\2.14.0\cucumber-pdf-report-2.14.0.jar;C:\Users\pavan\.m2\repository\org\
apache\pdfbox\pdfbox\2.0.26\pdfbox-2.0.26.jar;C:\Users\pavan\.m2\repository\org\
apache\pdfbox\fontbox\2.0.26\fontbox-2.0.26.jar;C:\Users\pavan\.m2\repository\
org\knowm\xchart\xchart\3.8.0\xchart-3.8.0.jar;C:\Users\pavan\.m2\repository\de\
erichseifert\vectorgraphics2d\VectorGraphics2D\0.13\VectorGraphics2D-
0.13.jar;C:\Users\pavan\.m2\repository\de\rototor\pdfbox\graphics2d\0.30\
graphics2d-0.30.jar;C:\Users\pavan\.m2\repository\com\madgag\animated-gif-lib\
1.4\animated-gif-lib-1.4.jar;C:\Users\pavan\.m2\repository\org\yaml\snakeyaml\
2.0\snakeyaml-2.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\table-
layout\1.5.1\table-layout-1.5.1.jar;C:\Users\pavan\.m2\repository\tech\
grasshopper\rest-assured-cucumber-pdf-report\1.5.0\rest-assured-cucumber-pdf-
report-1.5.0.jar;C:\Users\pavan\.m2\repository\org\jsoup\jsoup\1.15.3\jsoup-
1.15.3.jar;C:\Users\pavan\.m2\repository\com\aventstack\klov-reporter\5.1.0\
klov-reporter-5.1.0.jar;C:\Users\pavan\.m2\repository\org\mongodb\mongodb-
driver\3.6.4\mongodb-driver-3.6.4.jar;C:\Users\pavan\.m2\repository\org\mongodb\
mongodb-driver-core\3.6.4\mongodb-driver-core-3.6.4.jar;C:\Users\pavan\.m2\
repository\org\mongodb\bson\3.6.4\bson-3.6.4.jar;C:\Users\pavan\.m2\repository\
org\apache\httpcomponents\httpclient\4.5.13\httpclient-4.5.13.jar;C:\Users\
pavan\.m2\repository\org\apache\httpcomponents\httpcore\4.4.13\httpcore-
4.4.13.jar;C:\Users\pavan\.m2\repository\commons-logging\commons-logging\1.2\
commons-logging-1.2.jar;C:\Users\pavan\.m2\repository\org\apache\httpcomponents\
httpmime\4.5.13\httpmime-4.5.13.jar;C:\Users\pavan\.m2\repository\tech\
grasshopper\htmlextentreporter\1.1.0\htmlextentreporter-1.1.0.jar;C:\Users\
pavan\.m2\repository\tech\grasshopper\extent-excel-report\1.4.0\extent-excel-
report-1.4.0.jar;"/>

<property name="java.vm.vendor" value="Oracle Corporation"/>

<property name="sun.arch.data.model" value="64"/>

<property name="user.variant" value=""/>

<property name="java.vendor.url" value="https://java.oracle.com/"/>

<property name="user.timezone" value="Asia/Calcutta"/>

<property name="os.name" value="Windows 11"/>

<property name="java.vm.specification.version" value="19"/>


<property name="sun.java.launcher" value="SUN_STANDARD"/>

<property name="user.country" value="US"/>

<property name="sun.boot.library.path" value="C:\Program Files\Java\jdk-19\


bin"/>

<property name="sun.java.command" value="C:\Users\pavan\AppData\Local\Temp\


surefire16513670564023703382\surefirebooter-20231208112952906_3.jar C:\Users\
pavan\AppData\Local\Temp\surefire16513670564023703382 2023-12-08T11-29-52_535-
jvmRun1 surefire-20231208112952906_1tmp surefire_0-20231208112952906_2tmp"/>

<property name="jdk.debug" value="release"/>

<property name="surefire.test.class.path" value="C:\workspaces\16-June-


2023batch\opencart_sept2023_cucumber\target\test-classes;C:\workspaces\16-June-
2023batch\opencart_sept2023_cucumber\target\classes;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-java\4.15.0\selenium-java-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-api\
4.15.0\selenium-api-4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-chrome-driver\4.15.0\selenium-chrome-driver-4.15.0.jar;C:\
Users\pavan\.m2\repository\com\google\auto\service\auto-service-annotations\
1.1.1\auto-service-annotations-1.1.1.jar;C:\Users\pavan\.m2\repository\org\
seleniumhq\selenium\selenium-chromium-driver\4.15.0\selenium-chromium-driver-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-json\
4.15.0\selenium-json-4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-manager\4.15.0\selenium-manager-4.15.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-devtools-v117\4.15.0\selenium-
devtools-v117-4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-devtools-v118\4.15.0\selenium-devtools-v118-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-devtools-v119\4.15.0\
selenium-devtools-v119-4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-devtools-v85\4.15.0\selenium-devtools-v85-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-edge-driver\4.15.0\
selenium-edge-driver-4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-firefox-driver\4.15.0\selenium-firefox-driver-4.15.0.jar;C:\
Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-http\4.15.0\
selenium-http-4.15.0.jar;C:\Users\pavan\.m2\repository\dev\failsafe\failsafe\
3.3.2\failsafe-3.3.2.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-ie-driver\4.15.0\selenium-ie-driver-4.15.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-remote-driver\4.15.0\selenium-
remote-driver-4.15.0.jar;C:\Users\pavan\.m2\repository\com\google\guava\guava\
32.1.2-jre\guava-32.1.2-jre.jar;C:\Users\pavan\.m2\repository\com\google\guava\
failureaccess\1.0.1\failureaccess-1.0.1.jar;C:\Users\pavan\.m2\repository\com\
google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\
listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;C:\Users\
pavan\.m2\repository\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;C:\
Users\pavan\.m2\repository\org\checkerframework\checker-qual\3.33.0\checker-
qual-3.33.0.jar;C:\Users\pavan\.m2\repository\com\google\errorprone\
error_prone_annotations\2.18.0\error_prone_annotations-2.18.0.jar;C:\Users\
pavan\.m2\repository\com\google\j2objc\j2objc-annotations\2.8\j2objc-
annotations-2.8.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\
opentelemetry-api\1.28.0\opentelemetry-api-1.28.0.jar;C:\Users\pavan\.m2\
repository\io\opentelemetry\opentelemetry-context\1.28.0\opentelemetry-context-
1.28.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-
exporter-logging\1.28.0\opentelemetry-exporter-logging-1.28.0.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-metrics\1.28.0\
opentelemetry-sdk-metrics-1.28.0.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-extension-incubator\1.28.0-alpha\opentelemetry-
extension-incubator-1.28.0-alpha.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-sdk-logs\1.28.0\opentelemetry-sdk-logs-
1.28.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-
common\1.28.0\opentelemetry-sdk-common-1.28.0.jar;C:\Users\pavan\.m2\repository\
io\opentelemetry\opentelemetry-sdk-extension-autoconfigure-spi\1.28.0\
opentelemetry-sdk-extension-autoconfigure-spi-1.28.0.jar;C:\Users\pavan\.m2\
repository\io\opentelemetry\opentelemetry-sdk-extension-autoconfigure\1.28.0\
opentelemetry-sdk-extension-autoconfigure-1.28.0.jar;C:\Users\pavan\.m2\
repository\io\opentelemetry\opentelemetry-api-events\1.28.0-alpha\opentelemetry-
api-events-1.28.0-alpha.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\
opentelemetry-sdk-trace\1.28.0\opentelemetry-sdk-trace-1.28.0.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk\1.28.0\opentelemetry-
sdk-1.28.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-
semconv\1.28.0-alpha\opentelemetry-semconv-1.28.0-alpha.jar;C:\Users\pavan\.m2\
repository\net\bytebuddy\byte-buddy\1.14.5\byte-buddy-1.14.5.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-os\4.15.0\selenium-os-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\apache\commons\commons-exec\1.3\
commons-exec-1.3.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-safari-driver\4.15.0\selenium-safari-driver-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-support\4.15.0\selenium-
support-4.15.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\cucumber-junit\
7.14.1\cucumber-junit-7.14.1.jar;C:\Users\pavan\.m2\repository\org\apiguardian\
apiguardian-api\1.1.2\apiguardian-api-1.1.2.jar;C:\Users\pavan\.m2\repository\
io\cucumber\cucumber-core\7.14.1\cucumber-core-7.14.1.jar;C:\Users\pavan\.m2\
repository\io\cucumber\cucumber-gherkin\7.14.1\cucumber-gherkin-7.14.1.jar;C:\
Users\pavan\.m2\repository\io\cucumber\cucumber-gherkin-messages\7.14.1\
cucumber-gherkin-messages-7.14.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\
gherkin\26.2.0\gherkin-26.2.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\
messages\22.0.0\messages-22.0.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\
tag-expressions\6.0.0\tag-expressions-6.0.0.jar;C:\Users\pavan\.m2\repository\
io\cucumber\cucumber-expressions\17.0.1\cucumber-expressions-17.0.1.jar;C:\
Users\pavan\.m2\repository\io\cucumber\datatable\7.14.1\datatable-7.14.1.jar;C:\
Users\pavan\.m2\repository\io\cucumber\cucumber-plugin\7.14.1\cucumber-plugin-
7.14.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\docstring\7.14.1\docstring-
7.14.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\html-formatter\20.4.0\html-
formatter-20.4.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\junit-xml-
formatter\0.2.0\junit-xml-formatter-0.2.0.jar;C:\Users\pavan\.m2\repository\io\
cucumber\ci-environment\10.0.0\ci-environment-10.0.0.jar;C:\Users\pavan\.m2\
repository\junit\junit\4.13.2\junit-4.13.2.jar;C:\Users\pavan\.m2\repository\
org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\pavan\.m2\
repository\io\cucumber\cucumber-java\7.14.1\cucumber-java-7.14.1.jar;C:\Users\
pavan\.m2\repository\org\apache\logging\log4j\log4j-core\2.20.0\log4j-core-
2.20.0.jar;C:\Users\pavan\.m2\repository\org\apache\logging\log4j\log4j-api\
2.20.0\log4j-api-2.20.0.jar;C:\Users\pavan\.m2\repository\org\apache\poi\poi\
5.2.3\poi-5.2.3.jar;C:\Users\pavan\.m2\repository\commons-codec\commons-codec\
1.15\commons-codec-1.15.jar;C:\Users\pavan\.m2\repository\org\apache\commons\
commons-collections4\4.4\commons-collections4-4.4.jar;C:\Users\pavan\.m2\
repository\org\apache\commons\commons-math3\3.6.1\commons-math3-3.6.1.jar;C:\
Users\pavan\.m2\repository\com\zaxxer\SparseBitSet\1.2\SparseBitSet-1.2.jar;C:\
Users\pavan\.m2\repository\org\apache\poi\poi-ooxml\5.2.3\poi-ooxml-
5.2.3.jar;C:\Users\pavan\.m2\repository\org\apache\poi\poi-ooxml-lite\5.2.3\poi-
ooxml-lite-5.2.3.jar;C:\Users\pavan\.m2\repository\org\apache\xmlbeans\xmlbeans\
5.1.1\xmlbeans-5.1.1.jar;C:\Users\pavan\.m2\repository\org\apache\commons\
commons-compress\1.21\commons-compress-1.21.jar;C:\Users\pavan\.m2\repository\
com\github\virtuald\curvesapi\1.07\curvesapi-1.07.jar;C:\Users\pavan\.m2\
repository\commons-io\commons-io\2.11.0\commons-io-2.11.0.jar;C:\Users\
pavan\.m2\repository\org\apache\commons\commons-lang3\3.12.0\commons-lang3-
3.12.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\extentreports-
cucumber7-adapter\1.14.0\extentreports-cucumber7-adapter-1.14.0.jar;C:\Users\
pavan\.m2\repository\com\aventstack\extentreports\5.1.0\extentreports-
5.1.0.jar;C:\Users\pavan\.m2\repository\io\reactivex\rxjava3\rxjava\3.1.6\
rxjava-3.1.6.jar;C:\Users\pavan\.m2\repository\org\reactivestreams\reactive-
streams\1.0.4\reactive-streams-1.0.4.jar;C:\Users\pavan\.m2\repository\org\
freemarker\freemarker\2.3.32\freemarker-2.3.32.jar;C:\Users\pavan\.m2\
repository\org\projectlombok\lombok\1.18.26\lombok-1.18.26.jar;C:\Users\
pavan\.m2\repository\com\google\code\gson\gson\2.10.1\gson-2.10.1.jar;C:\Users\
pavan\.m2\repository\tech\grasshopper\extent-pdf-report\2.12.0\extent-pdf-
report-2.12.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\cucumber-pdf-
report\2.14.0\cucumber-pdf-report-2.14.0.jar;C:\Users\pavan\.m2\repository\org\
apache\pdfbox\pdfbox\2.0.26\pdfbox-2.0.26.jar;C:\Users\pavan\.m2\repository\org\
apache\pdfbox\fontbox\2.0.26\fontbox-2.0.26.jar;C:\Users\pavan\.m2\repository\
org\knowm\xchart\xchart\3.8.0\xchart-3.8.0.jar;C:\Users\pavan\.m2\repository\de\
erichseifert\vectorgraphics2d\VectorGraphics2D\0.13\VectorGraphics2D-
0.13.jar;C:\Users\pavan\.m2\repository\de\rototor\pdfbox\graphics2d\0.30\
graphics2d-0.30.jar;C:\Users\pavan\.m2\repository\com\madgag\animated-gif-lib\
1.4\animated-gif-lib-1.4.jar;C:\Users\pavan\.m2\repository\org\yaml\snakeyaml\
2.0\snakeyaml-2.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\table-
layout\1.5.1\table-layout-1.5.1.jar;C:\Users\pavan\.m2\repository\tech\
grasshopper\rest-assured-cucumber-pdf-report\1.5.0\rest-assured-cucumber-pdf-
report-1.5.0.jar;C:\Users\pavan\.m2\repository\org\jsoup\jsoup\1.15.3\jsoup-
1.15.3.jar;C:\Users\pavan\.m2\repository\com\aventstack\klov-reporter\5.1.0\
klov-reporter-5.1.0.jar;C:\Users\pavan\.m2\repository\org\mongodb\mongodb-
driver\3.6.4\mongodb-driver-3.6.4.jar;C:\Users\pavan\.m2\repository\org\mongodb\
mongodb-driver-core\3.6.4\mongodb-driver-core-3.6.4.jar;C:\Users\pavan\.m2\
repository\org\mongodb\bson\3.6.4\bson-3.6.4.jar;C:\Users\pavan\.m2\repository\
org\apache\httpcomponents\httpclient\4.5.13\httpclient-4.5.13.jar;C:\Users\
pavan\.m2\repository\org\apache\httpcomponents\httpcore\4.4.13\httpcore-
4.4.13.jar;C:\Users\pavan\.m2\repository\commons-logging\commons-logging\1.2\
commons-logging-1.2.jar;C:\Users\pavan\.m2\repository\org\apache\httpcomponents\
httpmime\4.5.13\httpmime-4.5.13.jar;C:\Users\pavan\.m2\repository\tech\
grasshopper\htmlextentreporter\1.1.0\htmlextentreporter-1.1.0.jar;C:\Users\
pavan\.m2\repository\tech\grasshopper\extent-excel-report\1.4.0\extent-excel-
report-1.4.0.jar;"/>

<property name="sun.cpu.endian" value="little"/>

<property name="user.home" value="C:\Users\pavan"/>

<property name="user.language" value="en"/>

<property name="java.specification.vendor" value="Oracle Corporation"/>

<property name="java.version.date" value="2022-10-18"/>

<property name="java.home" value="C:\Program Files\Java\jdk-19"/>

<property name="file.separator" value="\"/>


<property name="basedir" value="C:\workspaces\16-June-2023batch\
opencart_sept2023_cucumber"/>

<property name="style.color" value="always"/>

<property name="java.vm.compressedOopsMode" value="32-bit"/>

<property name="line.separator" value="&#10;"/>

<property name="java.vm.specification.vendor" value="Oracle Corporation"/>

<property name="java.specification.name" value="Java Platform API


Specification"/>

<property name="surefire.real.class.path" value="C:\Users\pavan\AppData\Local\


Temp\surefire16513670564023703382\surefirebooter-20231208112952906_3.jar"/>

<property name="user.script" value=""/>

<property name="sun.management.compiler" value="HotSpot 64-Bit Tiered


Compilers"/>

<property name="java.runtime.version" value="19.0.1+10-21"/>

<property name="user.name" value="pavan"/>

<property name="stdout.encoding" value="Cp1252"/>

<property name="path.separator" value=";"/>

<property name="os.version" value="10.0"/>

<property name="java.runtime.name" value="Java(TM) SE Runtime Environment"/>

<property name="file.encoding" value="UTF-8"/>

<property name="java.vm.name" value="Java HotSpot(TM) 64-Bit Server VM"/>

<property name="localRepository" value="C:\Users\pavan\.m2\repository"/>

<property name="java.vendor.url.bug"
value="https://bugreport.java.com/bugreport/"/>

<property name="java.io.tmpdir" value="C:\Users\pavan\AppData\Local\Temp\"/>

<property name="java.version" value="19.0.1"/>

<property name="user.dir" value="C:\workspaces\16-June-2023batch\


opencart_sept2023_cucumber"/>

<property name="os.arch" value="amd64"/>

<property name="java.vm.specification.name" value="Java Virtual Machine


Specification"/>

<property name="sun.os.patch.level" value=""/>

<property name="native.encoding" value="Cp1252"/>


<property name="java.library.path" value="C:\Program Files\Java\jdk-19\bin;C:\
WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\Parallels\
Parallels Tools\Applications;C:\Program Files\Common Files\Oracle\Java\
javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\
System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\apache-maven-
3.9.4\bin;C:\Program Files\Java\jdk-19\bin;C:\Program Files\Git\cmd;C:\Program
Files\nodejs\;C:\Program Files\Git\bin;C:\Users\pavan\AppData\Local\Microsoft\
WindowsApps;;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition
2022.1.3\bin;;C:\Program Files\JetBrains\PyCharm 2022.2.4\bin;;C:\Users\pavan\
AppData\Roaming\npm;."/>

<property name="java.vm.info" value="mixed mode, sharing"/>

<property name="stderr.encoding" value="Cp1252"/>

<property name="java.vendor" value="Oracle Corporation"/>

<property name="java.vm.version" value="19.0.1+10-21"/>

<property name="sun.io.unicode.encoding" value="UnicodeLittle"/>

<property name="java.class.version" value="63.0"/>

</properties>

<testcase name="Successful Account Registration" classname="Account


Registration" time="7.746">

<system-out><![CDATA[

Scenario: Successful Account Registration #


Features/Registration.feature:3

Given the user navigates to Register Account page #


stepDefinitions.RegistrationSteps.user_navigates_to_register_account_page()

When the user enters the details into below fields #


stepDefinitions.RegistrationSteps.user_enters_the_details_into_below_fields(io.c
ucumber.datatable.DataTable)

| firstName | John |

| lastName | Kenedy |

| telephone | 1234567890 |

| password | test@123 |

And the user selects Privacy Policy #


stepDefinitions.RegistrationSteps.user_selects_privacy_policy()

And the user clicks on Continue button #


stepDefinitions.RegistrationSteps.user_clicks_on_continue_button()

Then the user account should get created successfully #


stepDefinitions.RegistrationSteps.user_account_should_get_created_successfully()

]]></system-out>
</testcase>

</testsuite>

<?xml version="1.0" encoding="UTF-8"?>

<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-
plugin/xsd/surefire-test-report-3.0.xsd" version="3.0" name="Login with Valid
Credentials" time="0.422" tests="2" errors="2" skipped="0" failures="0">

<properties>

<property name="java.specification.version" value="19"/>

<property name="sun.cpu.isalist" value="amd64"/>

<property name="sun.jnu.encoding" value="Cp1252"/>

<property name="java.class.path" value="C:\workspaces\16-June-2023batch\


opencart_sept2023_cucumber\target\test-classes;C:\workspaces\16-June-2023batch\
opencart_sept2023_cucumber\target\classes;C:\Users\pavan\.m2\repository\org\
seleniumhq\selenium\selenium-java\4.15.0\selenium-java-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-api\4.15.0\selenium-api-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-
chrome-driver\4.15.0\selenium-chrome-driver-4.15.0.jar;C:\Users\pavan\.m2\
repository\com\google\auto\service\auto-service-annotations\1.1.1\auto-service-
annotations-1.1.1.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-chromium-driver\4.15.0\selenium-chromium-driver-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-json\4.15.0\selenium-json-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-
manager\4.15.0\selenium-manager-4.15.0.jar;C:\Users\pavan\.m2\repository\org\
seleniumhq\selenium\selenium-devtools-v117\4.15.0\selenium-devtools-v117-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-
devtools-v118\4.15.0\selenium-devtools-v118-4.15.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-devtools-v119\4.15.0\selenium-
devtools-v119-4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-devtools-v85\4.15.0\selenium-devtools-v85-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-edge-driver\4.15.0\
selenium-edge-driver-4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-firefox-driver\4.15.0\selenium-firefox-driver-4.15.0.jar;C:\
Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-http\4.15.0\
selenium-http-4.15.0.jar;C:\Users\pavan\.m2\repository\dev\failsafe\failsafe\
3.3.2\failsafe-3.3.2.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-ie-driver\4.15.0\selenium-ie-driver-4.15.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-remote-driver\4.15.0\selenium-
remote-driver-4.15.0.jar;C:\Users\pavan\.m2\repository\com\google\guava\guava\
32.1.2-jre\guava-32.1.2-jre.jar;C:\Users\pavan\.m2\repository\com\google\guava\
failureaccess\1.0.1\failureaccess-1.0.1.jar;C:\Users\pavan\.m2\repository\com\
google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\
listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;C:\Users\
pavan\.m2\repository\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;C:\
Users\pavan\.m2\repository\org\checkerframework\checker-qual\3.33.0\checker-
qual-3.33.0.jar;C:\Users\pavan\.m2\repository\com\google\errorprone\
error_prone_annotations\2.18.0\error_prone_annotations-2.18.0.jar;C:\Users\
pavan\.m2\repository\com\google\j2objc\j2objc-annotations\2.8\j2objc-
annotations-2.8.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\
opentelemetry-api\1.28.0\opentelemetry-api-1.28.0.jar;C:\Users\pavan\.m2\
repository\io\opentelemetry\opentelemetry-context\1.28.0\opentelemetry-context-
1.28.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-
exporter-logging\1.28.0\opentelemetry-exporter-logging-1.28.0.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-metrics\1.28.0\
opentelemetry-sdk-metrics-1.28.0.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-extension-incubator\1.28.0-alpha\opentelemetry-
extension-incubator-1.28.0-alpha.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-sdk-logs\1.28.0\opentelemetry-sdk-logs-
1.28.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-
common\1.28.0\opentelemetry-sdk-common-1.28.0.jar;C:\Users\pavan\.m2\repository\
io\opentelemetry\opentelemetry-sdk-extension-autoconfigure-spi\1.28.0\
opentelemetry-sdk-extension-autoconfigure-spi-1.28.0.jar;C:\Users\pavan\.m2\
repository\io\opentelemetry\opentelemetry-sdk-extension-autoconfigure\1.28.0\
opentelemetry-sdk-extension-autoconfigure-1.28.0.jar;C:\Users\pavan\.m2\
repository\io\opentelemetry\opentelemetry-api-events\1.28.0-alpha\opentelemetry-
api-events-1.28.0-alpha.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\
opentelemetry-sdk-trace\1.28.0\opentelemetry-sdk-trace-1.28.0.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk\1.28.0\opentelemetry-
sdk-1.28.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-
semconv\1.28.0-alpha\opentelemetry-semconv-1.28.0-alpha.jar;C:\Users\pavan\.m2\
repository\net\bytebuddy\byte-buddy\1.14.5\byte-buddy-1.14.5.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-os\4.15.0\selenium-os-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\apache\commons\commons-exec\1.3\
commons-exec-1.3.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-safari-driver\4.15.0\selenium-safari-driver-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-support\4.15.0\selenium-
support-4.15.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\cucumber-junit\
7.14.1\cucumber-junit-7.14.1.jar;C:\Users\pavan\.m2\repository\org\apiguardian\
apiguardian-api\1.1.2\apiguardian-api-1.1.2.jar;C:\Users\pavan\.m2\repository\
io\cucumber\cucumber-core\7.14.1\cucumber-core-7.14.1.jar;C:\Users\pavan\.m2\
repository\io\cucumber\cucumber-gherkin\7.14.1\cucumber-gherkin-7.14.1.jar;C:\
Users\pavan\.m2\repository\io\cucumber\cucumber-gherkin-messages\7.14.1\
cucumber-gherkin-messages-7.14.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\
gherkin\26.2.0\gherkin-26.2.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\
messages\22.0.0\messages-22.0.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\
tag-expressions\6.0.0\tag-expressions-6.0.0.jar;C:\Users\pavan\.m2\repository\
io\cucumber\cucumber-expressions\17.0.1\cucumber-expressions-17.0.1.jar;C:\
Users\pavan\.m2\repository\io\cucumber\datatable\7.14.1\datatable-7.14.1.jar;C:\
Users\pavan\.m2\repository\io\cucumber\cucumber-plugin\7.14.1\cucumber-plugin-
7.14.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\docstring\7.14.1\docstring-
7.14.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\html-formatter\20.4.0\html-
formatter-20.4.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\junit-xml-
formatter\0.2.0\junit-xml-formatter-0.2.0.jar;C:\Users\pavan\.m2\repository\io\
cucumber\ci-environment\10.0.0\ci-environment-10.0.0.jar;C:\Users\pavan\.m2\
repository\junit\junit\4.13.2\junit-4.13.2.jar;C:\Users\pavan\.m2\repository\
org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\pavan\.m2\
repository\io\cucumber\cucumber-java\7.14.1\cucumber-java-7.14.1.jar;C:\Users\
pavan\.m2\repository\org\apache\logging\log4j\log4j-core\2.20.0\log4j-core-
2.20.0.jar;C:\Users\pavan\.m2\repository\org\apache\logging\log4j\log4j-api\
2.20.0\log4j-api-2.20.0.jar;C:\Users\pavan\.m2\repository\org\apache\poi\poi\
5.2.3\poi-5.2.3.jar;C:\Users\pavan\.m2\repository\commons-codec\commons-codec\
1.15\commons-codec-1.15.jar;C:\Users\pavan\.m2\repository\org\apache\commons\
commons-collections4\4.4\commons-collections4-4.4.jar;C:\Users\pavan\.m2\
repository\org\apache\commons\commons-math3\3.6.1\commons-math3-3.6.1.jar;C:\
Users\pavan\.m2\repository\com\zaxxer\SparseBitSet\1.2\SparseBitSet-1.2.jar;C:\
Users\pavan\.m2\repository\org\apache\poi\poi-ooxml\5.2.3\poi-ooxml-
5.2.3.jar;C:\Users\pavan\.m2\repository\org\apache\poi\poi-ooxml-lite\5.2.3\poi-
ooxml-lite-5.2.3.jar;C:\Users\pavan\.m2\repository\org\apache\xmlbeans\xmlbeans\
5.1.1\xmlbeans-5.1.1.jar;C:\Users\pavan\.m2\repository\org\apache\commons\
commons-compress\1.21\commons-compress-1.21.jar;C:\Users\pavan\.m2\repository\
com\github\virtuald\curvesapi\1.07\curvesapi-1.07.jar;C:\Users\pavan\.m2\
repository\commons-io\commons-io\2.11.0\commons-io-2.11.0.jar;C:\Users\
pavan\.m2\repository\org\apache\commons\commons-lang3\3.12.0\commons-lang3-
3.12.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\extentreports-
cucumber7-adapter\1.14.0\extentreports-cucumber7-adapter-1.14.0.jar;C:\Users\
pavan\.m2\repository\com\aventstack\extentreports\5.1.0\extentreports-
5.1.0.jar;C:\Users\pavan\.m2\repository\io\reactivex\rxjava3\rxjava\3.1.6\
rxjava-3.1.6.jar;C:\Users\pavan\.m2\repository\org\reactivestreams\reactive-
streams\1.0.4\reactive-streams-1.0.4.jar;C:\Users\pavan\.m2\repository\org\
freemarker\freemarker\2.3.32\freemarker-2.3.32.jar;C:\Users\pavan\.m2\
repository\org\projectlombok\lombok\1.18.26\lombok-1.18.26.jar;C:\Users\
pavan\.m2\repository\com\google\code\gson\gson\2.10.1\gson-2.10.1.jar;C:\Users\
pavan\.m2\repository\tech\grasshopper\extent-pdf-report\2.12.0\extent-pdf-
report-2.12.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\cucumber-pdf-
report\2.14.0\cucumber-pdf-report-2.14.0.jar;C:\Users\pavan\.m2\repository\org\
apache\pdfbox\pdfbox\2.0.26\pdfbox-2.0.26.jar;C:\Users\pavan\.m2\repository\org\
apache\pdfbox\fontbox\2.0.26\fontbox-2.0.26.jar;C:\Users\pavan\.m2\repository\
org\knowm\xchart\xchart\3.8.0\xchart-3.8.0.jar;C:\Users\pavan\.m2\repository\de\
erichseifert\vectorgraphics2d\VectorGraphics2D\0.13\VectorGraphics2D-
0.13.jar;C:\Users\pavan\.m2\repository\de\rototor\pdfbox\graphics2d\0.30\
graphics2d-0.30.jar;C:\Users\pavan\.m2\repository\com\madgag\animated-gif-lib\
1.4\animated-gif-lib-1.4.jar;C:\Users\pavan\.m2\repository\org\yaml\snakeyaml\
2.0\snakeyaml-2.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\table-
layout\1.5.1\table-layout-1.5.1.jar;C:\Users\pavan\.m2\repository\tech\
grasshopper\rest-assured-cucumber-pdf-report\1.5.0\rest-assured-cucumber-pdf-
report-1.5.0.jar;C:\Users\pavan\.m2\repository\org\jsoup\jsoup\1.15.3\jsoup-
1.15.3.jar;C:\Users\pavan\.m2\repository\com\aventstack\klov-reporter\5.1.0\
klov-reporter-5.1.0.jar;C:\Users\pavan\.m2\repository\org\mongodb\mongodb-
driver\3.6.4\mongodb-driver-3.6.4.jar;C:\Users\pavan\.m2\repository\org\mongodb\
mongodb-driver-core\3.6.4\mongodb-driver-core-3.6.4.jar;C:\Users\pavan\.m2\
repository\org\mongodb\bson\3.6.4\bson-3.6.4.jar;C:\Users\pavan\.m2\repository\
org\apache\httpcomponents\httpclient\4.5.13\httpclient-4.5.13.jar;C:\Users\
pavan\.m2\repository\org\apache\httpcomponents\httpcore\4.4.13\httpcore-
4.4.13.jar;C:\Users\pavan\.m2\repository\commons-logging\commons-logging\1.2\
commons-logging-1.2.jar;C:\Users\pavan\.m2\repository\org\apache\httpcomponents\
httpmime\4.5.13\httpmime-4.5.13.jar;C:\Users\pavan\.m2\repository\tech\
grasshopper\htmlextentreporter\1.1.0\htmlextentreporter-1.1.0.jar;C:\Users\
pavan\.m2\repository\tech\grasshopper\extent-excel-report\1.4.0\extent-excel-
report-1.4.0.jar;"/>

<property name="java.vm.vendor" value="Oracle Corporation"/>

<property name="sun.arch.data.model" value="64"/>

<property name="user.variant" value=""/>

<property name="java.vendor.url" value="https://java.oracle.com/"/>


<property name="user.timezone" value="Asia/Calcutta"/>

<property name="os.name" value="Windows 11"/>

<property name="java.vm.specification.version" value="19"/>

<property name="sun.java.launcher" value="SUN_STANDARD"/>

<property name="user.country" value="US"/>

<property name="sun.boot.library.path" value="C:\Program Files\Java\jdk-19\


bin"/>

<property name="sun.java.command" value="C:\Users\pavan\AppData\Local\Temp\


surefire16513670564023703382\surefirebooter-20231208112952906_3.jar C:\Users\
pavan\AppData\Local\Temp\surefire16513670564023703382 2023-12-08T11-29-52_535-
jvmRun1 surefire-20231208112952906_1tmp surefire_0-20231208112952906_2tmp"/>

<property name="jdk.debug" value="release"/>

<property name="surefire.test.class.path" value="C:\workspaces\16-June-


2023batch\opencart_sept2023_cucumber\target\test-classes;C:\workspaces\16-June-
2023batch\opencart_sept2023_cucumber\target\classes;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-java\4.15.0\selenium-java-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-api\
4.15.0\selenium-api-4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-chrome-driver\4.15.0\selenium-chrome-driver-4.15.0.jar;C:\
Users\pavan\.m2\repository\com\google\auto\service\auto-service-annotations\
1.1.1\auto-service-annotations-1.1.1.jar;C:\Users\pavan\.m2\repository\org\
seleniumhq\selenium\selenium-chromium-driver\4.15.0\selenium-chromium-driver-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-json\
4.15.0\selenium-json-4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-manager\4.15.0\selenium-manager-4.15.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-devtools-v117\4.15.0\selenium-
devtools-v117-4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-devtools-v118\4.15.0\selenium-devtools-v118-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-devtools-v119\4.15.0\
selenium-devtools-v119-4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-devtools-v85\4.15.0\selenium-devtools-v85-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-edge-driver\4.15.0\
selenium-edge-driver-4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-firefox-driver\4.15.0\selenium-firefox-driver-4.15.0.jar;C:\
Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-http\4.15.0\
selenium-http-4.15.0.jar;C:\Users\pavan\.m2\repository\dev\failsafe\failsafe\
3.3.2\failsafe-3.3.2.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-ie-driver\4.15.0\selenium-ie-driver-4.15.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-remote-driver\4.15.0\selenium-
remote-driver-4.15.0.jar;C:\Users\pavan\.m2\repository\com\google\guava\guava\
32.1.2-jre\guava-32.1.2-jre.jar;C:\Users\pavan\.m2\repository\com\google\guava\
failureaccess\1.0.1\failureaccess-1.0.1.jar;C:\Users\pavan\.m2\repository\com\
google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\
listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;C:\Users\
pavan\.m2\repository\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;C:\
Users\pavan\.m2\repository\org\checkerframework\checker-qual\3.33.0\checker-
qual-3.33.0.jar;C:\Users\pavan\.m2\repository\com\google\errorprone\
error_prone_annotations\2.18.0\error_prone_annotations-2.18.0.jar;C:\Users\
pavan\.m2\repository\com\google\j2objc\j2objc-annotations\2.8\j2objc-
annotations-2.8.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\
opentelemetry-api\1.28.0\opentelemetry-api-1.28.0.jar;C:\Users\pavan\.m2\
repository\io\opentelemetry\opentelemetry-context\1.28.0\opentelemetry-context-
1.28.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-
exporter-logging\1.28.0\opentelemetry-exporter-logging-1.28.0.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-metrics\1.28.0\
opentelemetry-sdk-metrics-1.28.0.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-extension-incubator\1.28.0-alpha\opentelemetry-
extension-incubator-1.28.0-alpha.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-sdk-logs\1.28.0\opentelemetry-sdk-logs-
1.28.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-
common\1.28.0\opentelemetry-sdk-common-1.28.0.jar;C:\Users\pavan\.m2\repository\
io\opentelemetry\opentelemetry-sdk-extension-autoconfigure-spi\1.28.0\
opentelemetry-sdk-extension-autoconfigure-spi-1.28.0.jar;C:\Users\pavan\.m2\
repository\io\opentelemetry\opentelemetry-sdk-extension-autoconfigure\1.28.0\
opentelemetry-sdk-extension-autoconfigure-1.28.0.jar;C:\Users\pavan\.m2\
repository\io\opentelemetry\opentelemetry-api-events\1.28.0-alpha\opentelemetry-
api-events-1.28.0-alpha.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\
opentelemetry-sdk-trace\1.28.0\opentelemetry-sdk-trace-1.28.0.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk\1.28.0\opentelemetry-
sdk-1.28.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-
semconv\1.28.0-alpha\opentelemetry-semconv-1.28.0-alpha.jar;C:\Users\pavan\.m2\
repository\net\bytebuddy\byte-buddy\1.14.5\byte-buddy-1.14.5.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-os\4.15.0\selenium-os-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\apache\commons\commons-exec\1.3\
commons-exec-1.3.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-safari-driver\4.15.0\selenium-safari-driver-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-support\4.15.0\selenium-
support-4.15.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\cucumber-junit\
7.14.1\cucumber-junit-7.14.1.jar;C:\Users\pavan\.m2\repository\org\apiguardian\
apiguardian-api\1.1.2\apiguardian-api-1.1.2.jar;C:\Users\pavan\.m2\repository\
io\cucumber\cucumber-core\7.14.1\cucumber-core-7.14.1.jar;C:\Users\pavan\.m2\
repository\io\cucumber\cucumber-gherkin\7.14.1\cucumber-gherkin-7.14.1.jar;C:\
Users\pavan\.m2\repository\io\cucumber\cucumber-gherkin-messages\7.14.1\
cucumber-gherkin-messages-7.14.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\
gherkin\26.2.0\gherkin-26.2.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\
messages\22.0.0\messages-22.0.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\
tag-expressions\6.0.0\tag-expressions-6.0.0.jar;C:\Users\pavan\.m2\repository\
io\cucumber\cucumber-expressions\17.0.1\cucumber-expressions-17.0.1.jar;C:\
Users\pavan\.m2\repository\io\cucumber\datatable\7.14.1\datatable-7.14.1.jar;C:\
Users\pavan\.m2\repository\io\cucumber\cucumber-plugin\7.14.1\cucumber-plugin-
7.14.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\docstring\7.14.1\docstring-
7.14.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\html-formatter\20.4.0\html-
formatter-20.4.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\junit-xml-
formatter\0.2.0\junit-xml-formatter-0.2.0.jar;C:\Users\pavan\.m2\repository\io\
cucumber\ci-environment\10.0.0\ci-environment-10.0.0.jar;C:\Users\pavan\.m2\
repository\junit\junit\4.13.2\junit-4.13.2.jar;C:\Users\pavan\.m2\repository\
org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\pavan\.m2\
repository\io\cucumber\cucumber-java\7.14.1\cucumber-java-7.14.1.jar;C:\Users\
pavan\.m2\repository\org\apache\logging\log4j\log4j-core\2.20.0\log4j-core-
2.20.0.jar;C:\Users\pavan\.m2\repository\org\apache\logging\log4j\log4j-api\
2.20.0\log4j-api-2.20.0.jar;C:\Users\pavan\.m2\repository\org\apache\poi\poi\
5.2.3\poi-5.2.3.jar;C:\Users\pavan\.m2\repository\commons-codec\commons-codec\
1.15\commons-codec-1.15.jar;C:\Users\pavan\.m2\repository\org\apache\commons\
commons-collections4\4.4\commons-collections4-4.4.jar;C:\Users\pavan\.m2\
repository\org\apache\commons\commons-math3\3.6.1\commons-math3-3.6.1.jar;C:\
Users\pavan\.m2\repository\com\zaxxer\SparseBitSet\1.2\SparseBitSet-1.2.jar;C:\
Users\pavan\.m2\repository\org\apache\poi\poi-ooxml\5.2.3\poi-ooxml-
5.2.3.jar;C:\Users\pavan\.m2\repository\org\apache\poi\poi-ooxml-lite\5.2.3\poi-
ooxml-lite-5.2.3.jar;C:\Users\pavan\.m2\repository\org\apache\xmlbeans\xmlbeans\
5.1.1\xmlbeans-5.1.1.jar;C:\Users\pavan\.m2\repository\org\apache\commons\
commons-compress\1.21\commons-compress-1.21.jar;C:\Users\pavan\.m2\repository\
com\github\virtuald\curvesapi\1.07\curvesapi-1.07.jar;C:\Users\pavan\.m2\
repository\commons-io\commons-io\2.11.0\commons-io-2.11.0.jar;C:\Users\
pavan\.m2\repository\org\apache\commons\commons-lang3\3.12.0\commons-lang3-
3.12.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\extentreports-
cucumber7-adapter\1.14.0\extentreports-cucumber7-adapter-1.14.0.jar;C:\Users\
pavan\.m2\repository\com\aventstack\extentreports\5.1.0\extentreports-
5.1.0.jar;C:\Users\pavan\.m2\repository\io\reactivex\rxjava3\rxjava\3.1.6\
rxjava-3.1.6.jar;C:\Users\pavan\.m2\repository\org\reactivestreams\reactive-
streams\1.0.4\reactive-streams-1.0.4.jar;C:\Users\pavan\.m2\repository\org\
freemarker\freemarker\2.3.32\freemarker-2.3.32.jar;C:\Users\pavan\.m2\
repository\org\projectlombok\lombok\1.18.26\lombok-1.18.26.jar;C:\Users\
pavan\.m2\repository\com\google\code\gson\gson\2.10.1\gson-2.10.1.jar;C:\Users\
pavan\.m2\repository\tech\grasshopper\extent-pdf-report\2.12.0\extent-pdf-
report-2.12.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\cucumber-pdf-
report\2.14.0\cucumber-pdf-report-2.14.0.jar;C:\Users\pavan\.m2\repository\org\
apache\pdfbox\pdfbox\2.0.26\pdfbox-2.0.26.jar;C:\Users\pavan\.m2\repository\org\
apache\pdfbox\fontbox\2.0.26\fontbox-2.0.26.jar;C:\Users\pavan\.m2\repository\
org\knowm\xchart\xchart\3.8.0\xchart-3.8.0.jar;C:\Users\pavan\.m2\repository\de\
erichseifert\vectorgraphics2d\VectorGraphics2D\0.13\VectorGraphics2D-
0.13.jar;C:\Users\pavan\.m2\repository\de\rototor\pdfbox\graphics2d\0.30\
graphics2d-0.30.jar;C:\Users\pavan\.m2\repository\com\madgag\animated-gif-lib\
1.4\animated-gif-lib-1.4.jar;C:\Users\pavan\.m2\repository\org\yaml\snakeyaml\
2.0\snakeyaml-2.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\table-
layout\1.5.1\table-layout-1.5.1.jar;C:\Users\pavan\.m2\repository\tech\
grasshopper\rest-assured-cucumber-pdf-report\1.5.0\rest-assured-cucumber-pdf-
report-1.5.0.jar;C:\Users\pavan\.m2\repository\org\jsoup\jsoup\1.15.3\jsoup-
1.15.3.jar;C:\Users\pavan\.m2\repository\com\aventstack\klov-reporter\5.1.0\
klov-reporter-5.1.0.jar;C:\Users\pavan\.m2\repository\org\mongodb\mongodb-
driver\3.6.4\mongodb-driver-3.6.4.jar;C:\Users\pavan\.m2\repository\org\mongodb\
mongodb-driver-core\3.6.4\mongodb-driver-core-3.6.4.jar;C:\Users\pavan\.m2\
repository\org\mongodb\bson\3.6.4\bson-3.6.4.jar;C:\Users\pavan\.m2\repository\
org\apache\httpcomponents\httpclient\4.5.13\httpclient-4.5.13.jar;C:\Users\
pavan\.m2\repository\org\apache\httpcomponents\httpcore\4.4.13\httpcore-
4.4.13.jar;C:\Users\pavan\.m2\repository\commons-logging\commons-logging\1.2\
commons-logging-1.2.jar;C:\Users\pavan\.m2\repository\org\apache\httpcomponents\
httpmime\4.5.13\httpmime-4.5.13.jar;C:\Users\pavan\.m2\repository\tech\
grasshopper\htmlextentreporter\1.1.0\htmlextentreporter-1.1.0.jar;C:\Users\
pavan\.m2\repository\tech\grasshopper\extent-excel-report\1.4.0\extent-excel-
report-1.4.0.jar;"/>

<property name="sun.cpu.endian" value="little"/>

<property name="user.home" value="C:\Users\pavan"/>

<property name="user.language" value="en"/>

<property name="java.specification.vendor" value="Oracle Corporation"/>


<property name="java.version.date" value="2022-10-18"/>

<property name="java.home" value="C:\Program Files\Java\jdk-19"/>

<property name="file.separator" value="\"/>

<property name="basedir" value="C:\workspaces\16-June-2023batch\


opencart_sept2023_cucumber"/>

<property name="style.color" value="always"/>

<property name="java.vm.compressedOopsMode" value="32-bit"/>

<property name="line.separator" value="&#10;"/>

<property name="java.vm.specification.vendor" value="Oracle Corporation"/>

<property name="java.specification.name" value="Java Platform API


Specification"/>

<property name="surefire.real.class.path" value="C:\Users\pavan\AppData\Local\


Temp\surefire16513670564023703382\surefirebooter-20231208112952906_3.jar"/>

<property name="user.script" value=""/>

<property name="sun.management.compiler" value="HotSpot 64-Bit Tiered


Compilers"/>

<property name="java.runtime.version" value="19.0.1+10-21"/>

<property name="user.name" value="pavan"/>

<property name="stdout.encoding" value="Cp1252"/>

<property name="path.separator" value=";"/>

<property name="os.version" value="10.0"/>

<property name="java.runtime.name" value="Java(TM) SE Runtime Environment"/>

<property name="file.encoding" value="UTF-8"/>

<property name="java.vm.name" value="Java HotSpot(TM) 64-Bit Server VM"/>

<property name="localRepository" value="C:\Users\pavan\.m2\repository"/>

<property name="java.vendor.url.bug"
value="https://bugreport.java.com/bugreport/"/>

<property name="java.io.tmpdir" value="C:\Users\pavan\AppData\Local\Temp\"/>

<property name="java.version" value="19.0.1"/>

<property name="user.dir" value="C:\workspaces\16-June-2023batch\


opencart_sept2023_cucumber"/>

<property name="os.arch" value="amd64"/>


<property name="java.vm.specification.name" value="Java Virtual Machine
Specification"/>

<property name="sun.os.patch.level" value=""/>

<property name="native.encoding" value="Cp1252"/>

<property name="java.library.path" value="C:\Program Files\Java\jdk-19\bin;C:\


WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\Parallels\
Parallels Tools\Applications;C:\Program Files\Common Files\Oracle\Java\
javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\
System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\apache-maven-
3.9.4\bin;C:\Program Files\Java\jdk-19\bin;C:\Program Files\Git\cmd;C:\Program
Files\nodejs\;C:\Program Files\Git\bin;C:\Users\pavan\AppData\Local\Microsoft\
WindowsApps;;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition
2022.1.3\bin;;C:\Program Files\JetBrains\PyCharm 2022.2.4\bin;;C:\Users\pavan\
AppData\Roaming\npm;."/>

<property name="java.vm.info" value="mixed mode, sharing"/>

<property name="stderr.encoding" value="Cp1252"/>

<property name="java.vendor" value="Oracle Corporation"/>

<property name="java.vm.version" value="19.0.1+10-21"/>

<property name="sun.io.unicode.encoding" value="UnicodeLittle"/>

<property name="java.class.version" value="63.0"/>

</properties>

<testcase name="Successful Login with Valid Credentials" classname="Login with


Valid Credentials" time="0.422">

<error message="Cannot invoke &quot;String.equalsIgnoreCase(String)&quot;


because the return value of &quot;java.util.Properties.getProperty(String)&quot;
is null" type="java.lang.NullPointerException"><!
[CDATA[java.lang.NullPointerException: Cannot invoke
"String.equalsIgnoreCase(String)" because the return value of
"java.util.Properties.getProperty(String)" is null

at factory.BaseClass.initilizeBrowser(BaseClass.java:27)

at stepDefinitions.Hooks.setup(Hooks.java:24)

]]></error>

<system-out><![CDATA[

@sanity @regression

Scenario: Successful Login with Valid Credentials


# Features/Login.feature:4

java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)"


because the return value of "java.util.Properties.getProperty(String)" is null
at factory.BaseClass.initilizeBrowser(BaseClass.java:27)

at stepDefinitions.Hooks.setup(Hooks.java:24)

Given the user navigates to login page


# stepDefinitions.LoginSteps.user_navigate_to_login_page()

When user enters email as "[email protected]" and password as "test@123"


#
stepDefinitions.LoginSteps.user_enters_email_as_and_password_as(java.lang.String
,java.lang.String)

And the user clicks on the Login button


# stepDefinitions.LoginSteps.click_on_login_button()

Then the user should be redirected to the MyAccount Page


# stepDefinitions.LoginSteps.user_navigates_to_my_account_page()

java.lang.NullPointerException: Cannot invoke


"org.openqa.selenium.WebDriver.quit()" because "this.driver" is null

at stepDefinitions.Hooks.tearDown(Hooks.java:37)

]]></system-out>

</testcase>

<testcase name="Successful Login with Valid Credentials" classname="Login with


Valid Credentials" time="0">

<error message="Cannot invoke &quot;org.openqa.selenium.WebDriver.quit()&quot;


because &quot;this.driver&quot; is null"
type="java.lang.NullPointerException"><![CDATA[java.lang.NullPointerException:
Cannot invoke "org.openqa.selenium.WebDriver.quit()" because "this.driver" is
null

at stepDefinitions.Hooks.tearDown(Hooks.java:37)

]]></error>

</testcase>

</testsuite>

-------------------------------------------------------------------------------

Test set: testRunner.TestRunner

-------------------------------------------------------------------------------

Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 21.72 s -- in


testRunner.TestRunner
<?xml version="1.0" encoding="UTF-8"?>

<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-
plugin/xsd/surefire-test-report-3.0.xsd" version="3.0"
name="testRunner.TestRunner" time="21.717" tests="2" errors="0" skipped="0"
failures="0">

<properties>

<property name="java.specification.version" value="19"/>

<property name="sun.cpu.isalist" value="amd64"/>

<property name="sun.jnu.encoding" value="Cp1252"/>

<property name="java.class.path" value="C:\workspaces\15-Sept-2023batch\


opencart_cucumber\target\test-classes;C:\workspaces\15-Sept-2023batch\
opencart_cucumber\target\classes;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-java\4.15.0\selenium-java-4.15.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-api\4.15.0\selenium-api-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-
chrome-driver\4.15.0\selenium-chrome-driver-4.15.0.jar;C:\Users\pavan\.m2\
repository\com\google\auto\service\auto-service-annotations\1.1.1\auto-service-
annotations-1.1.1.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-chromium-driver\4.15.0\selenium-chromium-driver-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-json\4.15.0\selenium-json-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-
manager\4.15.0\selenium-manager-4.15.0.jar;C:\Users\pavan\.m2\repository\org\
seleniumhq\selenium\selenium-devtools-v117\4.15.0\selenium-devtools-v117-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-
devtools-v118\4.15.0\selenium-devtools-v118-4.15.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-devtools-v119\4.15.0\selenium-
devtools-v119-4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-devtools-v85\4.15.0\selenium-devtools-v85-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-edge-driver\4.15.0\
selenium-edge-driver-4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-firefox-driver\4.15.0\selenium-firefox-driver-4.15.0.jar;C:\
Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-http\4.15.0\
selenium-http-4.15.0.jar;C:\Users\pavan\.m2\repository\dev\failsafe\failsafe\
3.3.2\failsafe-3.3.2.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-ie-driver\4.15.0\selenium-ie-driver-4.15.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-remote-driver\4.15.0\selenium-
remote-driver-4.15.0.jar;C:\Users\pavan\.m2\repository\com\google\guava\guava\
32.1.2-jre\guava-32.1.2-jre.jar;C:\Users\pavan\.m2\repository\com\google\guava\
failureaccess\1.0.1\failureaccess-1.0.1.jar;C:\Users\pavan\.m2\repository\com\
google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\
listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;C:\Users\
pavan\.m2\repository\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;C:\
Users\pavan\.m2\repository\org\checkerframework\checker-qual\3.33.0\checker-
qual-3.33.0.jar;C:\Users\pavan\.m2\repository\com\google\errorprone\
error_prone_annotations\2.18.0\error_prone_annotations-2.18.0.jar;C:\Users\
pavan\.m2\repository\com\google\j2objc\j2objc-annotations\2.8\j2objc-
annotations-2.8.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\
opentelemetry-api\1.28.0\opentelemetry-api-1.28.0.jar;C:\Users\pavan\.m2\
repository\io\opentelemetry\opentelemetry-context\1.28.0\opentelemetry-context-
1.28.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-
exporter-logging\1.28.0\opentelemetry-exporter-logging-1.28.0.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-metrics\1.28.0\
opentelemetry-sdk-metrics-1.28.0.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-extension-incubator\1.28.0-alpha\opentelemetry-
extension-incubator-1.28.0-alpha.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-sdk-logs\1.28.0\opentelemetry-sdk-logs-
1.28.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-
common\1.28.0\opentelemetry-sdk-common-1.28.0.jar;C:\Users\pavan\.m2\repository\
io\opentelemetry\opentelemetry-sdk-extension-autoconfigure-spi\1.28.0\
opentelemetry-sdk-extension-autoconfigure-spi-1.28.0.jar;C:\Users\pavan\.m2\
repository\io\opentelemetry\opentelemetry-sdk-extension-autoconfigure\1.28.0\
opentelemetry-sdk-extension-autoconfigure-1.28.0.jar;C:\Users\pavan\.m2\
repository\io\opentelemetry\opentelemetry-api-events\1.28.0-alpha\opentelemetry-
api-events-1.28.0-alpha.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\
opentelemetry-sdk-trace\1.28.0\opentelemetry-sdk-trace-1.28.0.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk\1.28.0\opentelemetry-
sdk-1.28.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-
semconv\1.28.0-alpha\opentelemetry-semconv-1.28.0-alpha.jar;C:\Users\pavan\.m2\
repository\net\bytebuddy\byte-buddy\1.14.5\byte-buddy-1.14.5.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-os\4.15.0\selenium-os-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\apache\commons\commons-exec\1.3\
commons-exec-1.3.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-safari-driver\4.15.0\selenium-safari-driver-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-support\4.15.0\selenium-
support-4.15.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\cucumber-junit\
7.14.1\cucumber-junit-7.14.1.jar;C:\Users\pavan\.m2\repository\org\apiguardian\
apiguardian-api\1.1.2\apiguardian-api-1.1.2.jar;C:\Users\pavan\.m2\repository\
io\cucumber\cucumber-core\7.14.1\cucumber-core-7.14.1.jar;C:\Users\pavan\.m2\
repository\io\cucumber\cucumber-gherkin\7.14.1\cucumber-gherkin-7.14.1.jar;C:\
Users\pavan\.m2\repository\io\cucumber\cucumber-gherkin-messages\7.14.1\
cucumber-gherkin-messages-7.14.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\
gherkin\26.2.0\gherkin-26.2.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\
messages\22.0.0\messages-22.0.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\
tag-expressions\6.0.0\tag-expressions-6.0.0.jar;C:\Users\pavan\.m2\repository\
io\cucumber\cucumber-expressions\17.0.1\cucumber-expressions-17.0.1.jar;C:\
Users\pavan\.m2\repository\io\cucumber\datatable\7.14.1\datatable-7.14.1.jar;C:\
Users\pavan\.m2\repository\io\cucumber\cucumber-plugin\7.14.1\cucumber-plugin-
7.14.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\docstring\7.14.1\docstring-
7.14.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\html-formatter\20.4.0\html-
formatter-20.4.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\junit-xml-
formatter\0.2.0\junit-xml-formatter-0.2.0.jar;C:\Users\pavan\.m2\repository\io\
cucumber\ci-environment\10.0.0\ci-environment-10.0.0.jar;C:\Users\pavan\.m2\
repository\junit\junit\4.13.2\junit-4.13.2.jar;C:\Users\pavan\.m2\repository\
org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\pavan\.m2\
repository\io\cucumber\cucumber-java\7.14.1\cucumber-java-7.14.1.jar;C:\Users\
pavan\.m2\repository\org\apache\logging\log4j\log4j-core\2.20.0\log4j-core-
2.20.0.jar;C:\Users\pavan\.m2\repository\org\apache\logging\log4j\log4j-api\
2.20.0\log4j-api-2.20.0.jar;C:\Users\pavan\.m2\repository\org\apache\poi\poi\
5.2.3\poi-5.2.3.jar;C:\Users\pavan\.m2\repository\commons-codec\commons-codec\
1.15\commons-codec-1.15.jar;C:\Users\pavan\.m2\repository\org\apache\commons\
commons-collections4\4.4\commons-collections4-4.4.jar;C:\Users\pavan\.m2\
repository\org\apache\commons\commons-math3\3.6.1\commons-math3-3.6.1.jar;C:\
Users\pavan\.m2\repository\com\zaxxer\SparseBitSet\1.2\SparseBitSet-1.2.jar;C:\
Users\pavan\.m2\repository\org\apache\poi\poi-ooxml\5.2.3\poi-ooxml-
5.2.3.jar;C:\Users\pavan\.m2\repository\org\apache\poi\poi-ooxml-lite\5.2.3\poi-
ooxml-lite-5.2.3.jar;C:\Users\pavan\.m2\repository\org\apache\xmlbeans\xmlbeans\
5.1.1\xmlbeans-5.1.1.jar;C:\Users\pavan\.m2\repository\org\apache\commons\
commons-compress\1.21\commons-compress-1.21.jar;C:\Users\pavan\.m2\repository\
com\github\virtuald\curvesapi\1.07\curvesapi-1.07.jar;C:\Users\pavan\.m2\
repository\commons-io\commons-io\2.11.0\commons-io-2.11.0.jar;C:\Users\
pavan\.m2\repository\org\apache\commons\commons-lang3\3.12.0\commons-lang3-
3.12.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\extentreports-
cucumber7-adapter\1.14.0\extentreports-cucumber7-adapter-1.14.0.jar;C:\Users\
pavan\.m2\repository\com\aventstack\extentreports\5.1.0\extentreports-
5.1.0.jar;C:\Users\pavan\.m2\repository\io\reactivex\rxjava3\rxjava\3.1.6\
rxjava-3.1.6.jar;C:\Users\pavan\.m2\repository\org\reactivestreams\reactive-
streams\1.0.4\reactive-streams-1.0.4.jar;C:\Users\pavan\.m2\repository\org\
freemarker\freemarker\2.3.32\freemarker-2.3.32.jar;C:\Users\pavan\.m2\
repository\org\projectlombok\lombok\1.18.26\lombok-1.18.26.jar;C:\Users\
pavan\.m2\repository\com\google\code\gson\gson\2.10.1\gson-2.10.1.jar;C:\Users\
pavan\.m2\repository\tech\grasshopper\extent-pdf-report\2.12.0\extent-pdf-
report-2.12.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\cucumber-pdf-
report\2.14.0\cucumber-pdf-report-2.14.0.jar;C:\Users\pavan\.m2\repository\org\
apache\pdfbox\pdfbox\2.0.26\pdfbox-2.0.26.jar;C:\Users\pavan\.m2\repository\org\
apache\pdfbox\fontbox\2.0.26\fontbox-2.0.26.jar;C:\Users\pavan\.m2\repository\
org\knowm\xchart\xchart\3.8.0\xchart-3.8.0.jar;C:\Users\pavan\.m2\repository\de\
erichseifert\vectorgraphics2d\VectorGraphics2D\0.13\VectorGraphics2D-
0.13.jar;C:\Users\pavan\.m2\repository\de\rototor\pdfbox\graphics2d\0.30\
graphics2d-0.30.jar;C:\Users\pavan\.m2\repository\com\madgag\animated-gif-lib\
1.4\animated-gif-lib-1.4.jar;C:\Users\pavan\.m2\repository\org\yaml\snakeyaml\
2.0\snakeyaml-2.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\table-
layout\1.5.1\table-layout-1.5.1.jar;C:\Users\pavan\.m2\repository\tech\
grasshopper\rest-assured-cucumber-pdf-report\1.5.0\rest-assured-cucumber-pdf-
report-1.5.0.jar;C:\Users\pavan\.m2\repository\org\jsoup\jsoup\1.15.3\jsoup-
1.15.3.jar;C:\Users\pavan\.m2\repository\com\aventstack\klov-reporter\5.1.0\
klov-reporter-5.1.0.jar;C:\Users\pavan\.m2\repository\org\mongodb\mongodb-
driver\3.6.4\mongodb-driver-3.6.4.jar;C:\Users\pavan\.m2\repository\org\mongodb\
mongodb-driver-core\3.6.4\mongodb-driver-core-3.6.4.jar;C:\Users\pavan\.m2\
repository\org\mongodb\bson\3.6.4\bson-3.6.4.jar;C:\Users\pavan\.m2\repository\
org\apache\httpcomponents\httpclient\4.5.13\httpclient-4.5.13.jar;C:\Users\
pavan\.m2\repository\org\apache\httpcomponents\httpcore\4.4.13\httpcore-
4.4.13.jar;C:\Users\pavan\.m2\repository\commons-logging\commons-logging\1.2\
commons-logging-1.2.jar;C:\Users\pavan\.m2\repository\org\apache\httpcomponents\
httpmime\4.5.13\httpmime-4.5.13.jar;C:\Users\pavan\.m2\repository\tech\
grasshopper\htmlextentreporter\1.1.0\htmlextentreporter-1.1.0.jar;C:\Users\
pavan\.m2\repository\tech\grasshopper\extent-excel-report\1.4.0\extent-excel-
report-1.4.0.jar;C:\Users\pavan\.m2\repository\org\apache\commons\commons-email\
1.5\commons-email-1.5.jar;C:\Users\pavan\.m2\repository\com\sun\mail\javax.mail\
1.5.6\javax.mail-1.5.6.jar;C:\Users\pavan\.m2\repository\javax\activation\
activation\1.1\activation-1.1.jar;"/>

<property name="java.vm.vendor" value="Oracle Corporation"/>

<property name="sun.arch.data.model" value="64"/>

<property name="user.variant" value=""/>

<property name="java.vendor.url" value="https://java.oracle.com/"/>


<property name="user.timezone" value="Asia/Calcutta"/>

<property name="os.name" value="Windows 11"/>

<property name="java.vm.specification.version" value="19"/>

<property name="sun.java.launcher" value="SUN_STANDARD"/>

<property name="user.country" value="US"/>

<property name="sun.boot.library.path" value="C:\Program Files\Java\jdk-19\


bin"/>

<property name="sun.java.command" value="C:\Users\pavan\AppData\Local\Temp\


surefire5685030077594761121\surefirebooter-20231208124802820_3.jar C:\Users\
pavan\AppData\Local\Temp\surefire5685030077594761121 2023-12-08T12-48-02_577-
jvmRun1 surefire-20231208124802820_1tmp surefire_0-20231208124802820_2tmp"/>

<property name="jdk.debug" value="release"/>

<property name="surefire.test.class.path" value="C:\workspaces\15-Sept-


2023batch\opencart_cucumber\target\test-classes;C:\workspaces\15-Sept-2023batch\
opencart_cucumber\target\classes;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-java\4.15.0\selenium-java-4.15.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-api\4.15.0\selenium-api-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-
chrome-driver\4.15.0\selenium-chrome-driver-4.15.0.jar;C:\Users\pavan\.m2\
repository\com\google\auto\service\auto-service-annotations\1.1.1\auto-service-
annotations-1.1.1.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-chromium-driver\4.15.0\selenium-chromium-driver-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-json\4.15.0\selenium-json-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-
manager\4.15.0\selenium-manager-4.15.0.jar;C:\Users\pavan\.m2\repository\org\
seleniumhq\selenium\selenium-devtools-v117\4.15.0\selenium-devtools-v117-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-
devtools-v118\4.15.0\selenium-devtools-v118-4.15.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-devtools-v119\4.15.0\selenium-
devtools-v119-4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-devtools-v85\4.15.0\selenium-devtools-v85-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-edge-driver\4.15.0\
selenium-edge-driver-4.15.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-firefox-driver\4.15.0\selenium-firefox-driver-4.15.0.jar;C:\
Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-http\4.15.0\
selenium-http-4.15.0.jar;C:\Users\pavan\.m2\repository\dev\failsafe\failsafe\
3.3.2\failsafe-3.3.2.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-ie-driver\4.15.0\selenium-ie-driver-4.15.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-remote-driver\4.15.0\selenium-
remote-driver-4.15.0.jar;C:\Users\pavan\.m2\repository\com\google\guava\guava\
32.1.2-jre\guava-32.1.2-jre.jar;C:\Users\pavan\.m2\repository\com\google\guava\
failureaccess\1.0.1\failureaccess-1.0.1.jar;C:\Users\pavan\.m2\repository\com\
google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\
listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;C:\Users\
pavan\.m2\repository\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;C:\
Users\pavan\.m2\repository\org\checkerframework\checker-qual\3.33.0\checker-
qual-3.33.0.jar;C:\Users\pavan\.m2\repository\com\google\errorprone\
error_prone_annotations\2.18.0\error_prone_annotations-2.18.0.jar;C:\Users\
pavan\.m2\repository\com\google\j2objc\j2objc-annotations\2.8\j2objc-
annotations-2.8.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\
opentelemetry-api\1.28.0\opentelemetry-api-1.28.0.jar;C:\Users\pavan\.m2\
repository\io\opentelemetry\opentelemetry-context\1.28.0\opentelemetry-context-
1.28.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-
exporter-logging\1.28.0\opentelemetry-exporter-logging-1.28.0.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-metrics\1.28.0\
opentelemetry-sdk-metrics-1.28.0.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-extension-incubator\1.28.0-alpha\opentelemetry-
extension-incubator-1.28.0-alpha.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-sdk-logs\1.28.0\opentelemetry-sdk-logs-
1.28.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-
common\1.28.0\opentelemetry-sdk-common-1.28.0.jar;C:\Users\pavan\.m2\repository\
io\opentelemetry\opentelemetry-sdk-extension-autoconfigure-spi\1.28.0\
opentelemetry-sdk-extension-autoconfigure-spi-1.28.0.jar;C:\Users\pavan\.m2\
repository\io\opentelemetry\opentelemetry-sdk-extension-autoconfigure\1.28.0\
opentelemetry-sdk-extension-autoconfigure-1.28.0.jar;C:\Users\pavan\.m2\
repository\io\opentelemetry\opentelemetry-api-events\1.28.0-alpha\opentelemetry-
api-events-1.28.0-alpha.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\
opentelemetry-sdk-trace\1.28.0\opentelemetry-sdk-trace-1.28.0.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk\1.28.0\opentelemetry-
sdk-1.28.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-
semconv\1.28.0-alpha\opentelemetry-semconv-1.28.0-alpha.jar;C:\Users\pavan\.m2\
repository\net\bytebuddy\byte-buddy\1.14.5\byte-buddy-1.14.5.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-os\4.15.0\selenium-os-
4.15.0.jar;C:\Users\pavan\.m2\repository\org\apache\commons\commons-exec\1.3\
commons-exec-1.3.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-safari-driver\4.15.0\selenium-safari-driver-4.15.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-support\4.15.0\selenium-
support-4.15.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\cucumber-junit\
7.14.1\cucumber-junit-7.14.1.jar;C:\Users\pavan\.m2\repository\org\apiguardian\
apiguardian-api\1.1.2\apiguardian-api-1.1.2.jar;C:\Users\pavan\.m2\repository\
io\cucumber\cucumber-core\7.14.1\cucumber-core-7.14.1.jar;C:\Users\pavan\.m2\
repository\io\cucumber\cucumber-gherkin\7.14.1\cucumber-gherkin-7.14.1.jar;C:\
Users\pavan\.m2\repository\io\cucumber\cucumber-gherkin-messages\7.14.1\
cucumber-gherkin-messages-7.14.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\
gherkin\26.2.0\gherkin-26.2.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\
messages\22.0.0\messages-22.0.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\
tag-expressions\6.0.0\tag-expressions-6.0.0.jar;C:\Users\pavan\.m2\repository\
io\cucumber\cucumber-expressions\17.0.1\cucumber-expressions-17.0.1.jar;C:\
Users\pavan\.m2\repository\io\cucumber\datatable\7.14.1\datatable-7.14.1.jar;C:\
Users\pavan\.m2\repository\io\cucumber\cucumber-plugin\7.14.1\cucumber-plugin-
7.14.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\docstring\7.14.1\docstring-
7.14.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\html-formatter\20.4.0\html-
formatter-20.4.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\junit-xml-
formatter\0.2.0\junit-xml-formatter-0.2.0.jar;C:\Users\pavan\.m2\repository\io\
cucumber\ci-environment\10.0.0\ci-environment-10.0.0.jar;C:\Users\pavan\.m2\
repository\junit\junit\4.13.2\junit-4.13.2.jar;C:\Users\pavan\.m2\repository\
org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\pavan\.m2\
repository\io\cucumber\cucumber-java\7.14.1\cucumber-java-7.14.1.jar;C:\Users\
pavan\.m2\repository\org\apache\logging\log4j\log4j-core\2.20.0\log4j-core-
2.20.0.jar;C:\Users\pavan\.m2\repository\org\apache\logging\log4j\log4j-api\
2.20.0\log4j-api-2.20.0.jar;C:\Users\pavan\.m2\repository\org\apache\poi\poi\
5.2.3\poi-5.2.3.jar;C:\Users\pavan\.m2\repository\commons-codec\commons-codec\
1.15\commons-codec-1.15.jar;C:\Users\pavan\.m2\repository\org\apache\commons\
commons-collections4\4.4\commons-collections4-4.4.jar;C:\Users\pavan\.m2\
repository\org\apache\commons\commons-math3\3.6.1\commons-math3-3.6.1.jar;C:\
Users\pavan\.m2\repository\com\zaxxer\SparseBitSet\1.2\SparseBitSet-1.2.jar;C:\
Users\pavan\.m2\repository\org\apache\poi\poi-ooxml\5.2.3\poi-ooxml-
5.2.3.jar;C:\Users\pavan\.m2\repository\org\apache\poi\poi-ooxml-lite\5.2.3\poi-
ooxml-lite-5.2.3.jar;C:\Users\pavan\.m2\repository\org\apache\xmlbeans\xmlbeans\
5.1.1\xmlbeans-5.1.1.jar;C:\Users\pavan\.m2\repository\org\apache\commons\
commons-compress\1.21\commons-compress-1.21.jar;C:\Users\pavan\.m2\repository\
com\github\virtuald\curvesapi\1.07\curvesapi-1.07.jar;C:\Users\pavan\.m2\
repository\commons-io\commons-io\2.11.0\commons-io-2.11.0.jar;C:\Users\
pavan\.m2\repository\org\apache\commons\commons-lang3\3.12.0\commons-lang3-
3.12.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\extentreports-
cucumber7-adapter\1.14.0\extentreports-cucumber7-adapter-1.14.0.jar;C:\Users\
pavan\.m2\repository\com\aventstack\extentreports\5.1.0\extentreports-
5.1.0.jar;C:\Users\pavan\.m2\repository\io\reactivex\rxjava3\rxjava\3.1.6\
rxjava-3.1.6.jar;C:\Users\pavan\.m2\repository\org\reactivestreams\reactive-
streams\1.0.4\reactive-streams-1.0.4.jar;C:\Users\pavan\.m2\repository\org\
freemarker\freemarker\2.3.32\freemarker-2.3.32.jar;C:\Users\pavan\.m2\
repository\org\projectlombok\lombok\1.18.26\lombok-1.18.26.jar;C:\Users\
pavan\.m2\repository\com\google\code\gson\gson\2.10.1\gson-2.10.1.jar;C:\Users\
pavan\.m2\repository\tech\grasshopper\extent-pdf-report\2.12.0\extent-pdf-
report-2.12.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\cucumber-pdf-
report\2.14.0\cucumber-pdf-report-2.14.0.jar;C:\Users\pavan\.m2\repository\org\
apache\pdfbox\pdfbox\2.0.26\pdfbox-2.0.26.jar;C:\Users\pavan\.m2\repository\org\
apache\pdfbox\fontbox\2.0.26\fontbox-2.0.26.jar;C:\Users\pavan\.m2\repository\
org\knowm\xchart\xchart\3.8.0\xchart-3.8.0.jar;C:\Users\pavan\.m2\repository\de\
erichseifert\vectorgraphics2d\VectorGraphics2D\0.13\VectorGraphics2D-
0.13.jar;C:\Users\pavan\.m2\repository\de\rototor\pdfbox\graphics2d\0.30\
graphics2d-0.30.jar;C:\Users\pavan\.m2\repository\com\madgag\animated-gif-lib\
1.4\animated-gif-lib-1.4.jar;C:\Users\pavan\.m2\repository\org\yaml\snakeyaml\
2.0\snakeyaml-2.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\table-
layout\1.5.1\table-layout-1.5.1.jar;C:\Users\pavan\.m2\repository\tech\
grasshopper\rest-assured-cucumber-pdf-report\1.5.0\rest-assured-cucumber-pdf-
report-1.5.0.jar;C:\Users\pavan\.m2\repository\org\jsoup\jsoup\1.15.3\jsoup-
1.15.3.jar;C:\Users\pavan\.m2\repository\com\aventstack\klov-reporter\5.1.0\
klov-reporter-5.1.0.jar;C:\Users\pavan\.m2\repository\org\mongodb\mongodb-
driver\3.6.4\mongodb-driver-3.6.4.jar;C:\Users\pavan\.m2\repository\org\mongodb\
mongodb-driver-core\3.6.4\mongodb-driver-core-3.6.4.jar;C:\Users\pavan\.m2\
repository\org\mongodb\bson\3.6.4\bson-3.6.4.jar;C:\Users\pavan\.m2\repository\
org\apache\httpcomponents\httpclient\4.5.13\httpclient-4.5.13.jar;C:\Users\
pavan\.m2\repository\org\apache\httpcomponents\httpcore\4.4.13\httpcore-
4.4.13.jar;C:\Users\pavan\.m2\repository\commons-logging\commons-logging\1.2\
commons-logging-1.2.jar;C:\Users\pavan\.m2\repository\org\apache\httpcomponents\
httpmime\4.5.13\httpmime-4.5.13.jar;C:\Users\pavan\.m2\repository\tech\
grasshopper\htmlextentreporter\1.1.0\htmlextentreporter-1.1.0.jar;C:\Users\
pavan\.m2\repository\tech\grasshopper\extent-excel-report\1.4.0\extent-excel-
report-1.4.0.jar;C:\Users\pavan\.m2\repository\org\apache\commons\commons-email\
1.5\commons-email-1.5.jar;C:\Users\pavan\.m2\repository\com\sun\mail\javax.mail\
1.5.6\javax.mail-1.5.6.jar;C:\Users\pavan\.m2\repository\javax\activation\
activation\1.1\activation-1.1.jar;"/>

<property name="sun.cpu.endian" value="little"/>

<property name="user.home" value="C:\Users\pavan"/>


<property name="user.language" value="en"/>

<property name="java.specification.vendor" value="Oracle Corporation"/>

<property name="java.version.date" value="2022-10-18"/>

<property name="java.home" value="C:\Program Files\Java\jdk-19"/>

<property name="file.separator" value="\"/>

<property name="basedir" value="C:\workspaces\15-Sept-2023batch\


opencart_cucumber"/>

<property name="style.color" value="always"/>

<property name="java.vm.compressedOopsMode" value="32-bit"/>

<property name="line.separator" value="&#10;"/>

<property name="java.vm.specification.vendor" value="Oracle Corporation"/>

<property name="java.specification.name" value="Java Platform API


Specification"/>

<property name="surefire.real.class.path" value="C:\Users\pavan\AppData\Local\


Temp\surefire5685030077594761121\surefirebooter-20231208124802820_3.jar"/>

<property name="user.script" value=""/>

<property name="sun.management.compiler" value="HotSpot 64-Bit Tiered


Compilers"/>

<property name="java.runtime.version" value="19.0.1+10-21"/>

<property name="user.name" value="pavan"/>

<property name="stdout.encoding" value="Cp1252"/>

<property name="path.separator" value=";"/>

<property name="os.version" value="10.0"/>

<property name="java.runtime.name" value="Java(TM) SE Runtime Environment"/>

<property name="file.encoding" value="UTF-8"/>

<property name="java.vm.name" value="Java HotSpot(TM) 64-Bit Server VM"/>

<property name="localRepository" value="C:\Users\pavan\.m2\repository"/>

<property name="java.vendor.url.bug"
value="https://bugreport.java.com/bugreport/"/>

<property name="java.io.tmpdir" value="C:\Users\pavan\AppData\Local\Temp\"/>

<property name="java.version" value="19.0.1"/>

<property name="user.dir" value="C:\workspaces\15-Sept-2023batch\


opencart_cucumber"/>
<property name="os.arch" value="amd64"/>

<property name="java.vm.specification.name" value="Java Virtual Machine


Specification"/>

<property name="sun.os.patch.level" value=""/>

<property name="native.encoding" value="Cp1252"/>

<property name="java.library.path" value="C:\Program Files\Java\jdk-19\bin;C:\


WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\Parallels\
Parallels Tools\Applications;C:\Program Files\Common Files\Oracle\Java\
javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\
System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\apache-maven-
3.9.4\bin;C:\Program Files\Java\jdk-19\bin;C:\Program Files\Git\cmd;C:\Program
Files\nodejs\;C:\Program Files\Git\bin;C:\Users\pavan\AppData\Local\Microsoft\
WindowsApps;;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition
2022.1.3\bin;;C:\Program Files\JetBrains\PyCharm 2022.2.4\bin;;C:\Users\pavan\
AppData\Roaming\npm;."/>

<property name="java.vm.info" value="mixed mode, sharing"/>

<property name="stderr.encoding" value="Cp1252"/>

<property name="java.vendor" value="Oracle Corporation"/>

<property name="java.vm.version" value="19.0.1+10-21"/>

<property name="sun.io.unicode.encoding" value="UnicodeLittle"/>

<property name="java.class.version" value="63.0"/>

</properties>

<testcase name="Successful Login with Valid Credentials" classname="Login with


Valid Credentials" time="10.276">

<system-out><![CDATA[

@sanity @regression

Scenario: Successful Login with Valid Credentials


# Features/Login.feature:4

Given the user navigates to login page


# stepDefinitions.LoginSteps.user_navigate_to_login_page()

When user enters email as "[email protected]" and password as "test@123"


#
stepDefinitions.LoginSteps.user_enters_email_as_and_password_as(java.lang.String
,java.lang.String)

And the user clicks on the Login button


# stepDefinitions.LoginSteps.click_on_login_button()

Then the user should be redirected to the MyAccount Page


# stepDefinitions.LoginSteps.user_navigates_to_my_account_page()
]]></system-out>

</testcase>

<testcase name="Successful Account Registration" classname="Account


Registration" time="7.317">

<system-out><![CDATA[

Scenario: Successful Account Registration #


Features/Registration.feature:3

Given the user navigates to Register Account page #


stepDefinitions.RegistrationSteps.user_navigates_to_register_account_page()

When the user enters the details into below fields #


stepDefinitions.RegistrationSteps.user_enters_the_details_into_below_fields(io.c
ucumber.datatable.DataTable)

| firstName | John |

| lastName | Kenedy |

| telephone | 1234567890 |

| password | test@123 |

And the user selects Privacy Policy #


stepDefinitions.RegistrationSteps.user_selects_privacy_policy()

And the user clicks on Continue button #


stepDefinitions.RegistrationSteps.user_clicks_on_continue_button()

Then the user account should get created successfully #


stepDefinitions.RegistrationSteps.user_account_should_get_created_successfully()

]]></system-out>

</testcase>

</testsuite>

package factory;

import java.io.FileReader;

import java.io.IOException;

import java.net.URL;

import java.time.Duration;

import java.util.Properties;
import org.apache.commons.lang3.RandomStringUtils;

import org.apache.logging.log4j.LogManager;

import org.apache.logging.log4j.Logger;

import org.openqa.selenium.Platform;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.edge.EdgeDriver;

import org.openqa.selenium.firefox.FirefoxDriver;

import org.openqa.selenium.remote.DesiredCapabilities;

import org.openqa.selenium.remote.RemoteWebDriver;

public class BaseClass {

static WebDriver driver;

static Properties p;

static Logger logger;

public static WebDriver initilizeBrowser() throws IOException

p = getProperties();

String executionEnv = p.getProperty("execution_env");

String browser = p.getProperty("browser").toLowerCase();

String os = p.getProperty("os").toLowerCase();

if(executionEnv.equalsIgnoreCase("remote"))

DesiredCapabilities capabilities = new DesiredCapabilities();

//os

switch (os) {
case "windows":

capabilities.setPlatform(Platform.WINDOWS);

break;

case "mac":

capabilities.setPlatform(Platform.MAC);

break;

case "linux":

capabilities.setPlatform(Platform.LINUX);

break;

default:

System.out.println("No matching OS");

return null;

//browser

switch (browser) {

case "chrome":

capabilities.setBrowserName("chrome");

break;

case "edge":

capabilities.setBrowserName("MicrosoftEdge");

break;

case "firefox":

capabilities.setBrowserName("firefox");

break;

default:

System.out.println("No matching browser");

return null;

}
driver = new RemoteWebDriver(new
URL("http://localhost:4444/wd/hub"),capabilities);

else if(executionEnv.equalsIgnoreCase("local"))

switch(browser.toLowerCase())

case "chrome":

driver=new ChromeDriver();

break;

case "edge":

driver=new EdgeDriver();

break;

case "firefox":

driver=new FirefoxDriver();

break;

default:

System.out.println("No matching browser");

driver=null;

driver.manage().deleteAllCookies();

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

driver.manage().timeouts().pageLoadTimeout(Duration.ofSeconds(5));

return driver;

}
public static WebDriver getDriver() {

return driver;

public static Properties getProperties() throws IOException

FileReader file=new FileReader(System.getProperty("user.dir")+"\\src\\test\\


resources\\config.properties");

p=new Properties();

p.load(file);

return p;

public static Logger getLogger()

logger=LogManager.getLogger(); //Log4j

return logger;

public static String randomeString()

String generatedString=RandomStringUtils.randomAlphabetic(5);

return generatedString;

public static String randomeNumber()

String generatedString=RandomStringUtils.randomNumeric(10);

return generatedString;

}
public static String randomAlphaNumeric()

String str=RandomStringUtils.randomAlphabetic(5);

String num=RandomStringUtils.randomNumeric(10);

return str+num;

package hooks;

import java.io.IOException;

import java.util.Properties;

import org.openqa.selenium.OutputType;

import org.openqa.selenium.TakesScreenshot;

import org.openqa.selenium.WebDriver;

import factory.BaseClass;

import io.cucumber.java.After;

import io.cucumber.java.AfterStep;

import io.cucumber.java.Before;

import io.cucumber.java.Scenario;

public class Hooks {

WebDriver driver;

Properties p;
@Before

public void setup() throws IOException

driver=BaseClass.initilizeBrowser();

p=BaseClass.getProperties();

driver.get(p.getProperty("appURL"));

driver.manage().window().maximize();

@After

public void tearDown() {

driver.quit();

@AfterStep

public void addScreenshot(Scenario scenario) {

// this is for cucumber junit report

if(scenario.isFailed()) {

TakesScreenshot ts=(TakesScreenshot) driver;

byte[] screenshot=ts.getScreenshotAs(OutputType.BYTES);

scenario.attach(screenshot, "image/png",scenario.getName());

}
}

package pageObjects;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.support.FindBy;

public class AccountRegistrationPage extends BasePage {

public AccountRegistrationPage(WebDriver driver) {

super(driver);

// Elements

@FindBy(name = "firstname")

WebElement txtFirstname;

@FindBy(name = "lastname")

WebElement txtLasttname;

@FindBy(name = "email")

WebElement txtEmail;

@FindBy(name = "telephone")

WebElement txtTelephone;

@FindBy(name = "password")
WebElement txtPassword;

@FindBy(name = "confirm")

WebElement txtConfirmPassword;

@FindBy(name = "agree")

WebElement chkdPolicy;

@FindBy(xpath = "//input[@value='Continue']")

WebElement btnContinue;

@FindBy(xpath = "//h1[normalize-space()='Your Account Has Been Created!']")

WebElement msgConfirmation;

public void setFirstName(String fname) {

txtFirstname.sendKeys(fname);

public void setLastName(String lname) {

txtLasttname.sendKeys(lname);

public void setEmail(String email) {

txtEmail.sendKeys(email);

public void setTelephone(String tel) {


txtTelephone.sendKeys(tel);

public void setPassword(String pwd) {

txtPassword.sendKeys(pwd);

public void setConfirmPassword(String pwd) {

txtConfirmPassword.sendKeys(pwd);

public void setPrivacyPolicy() {

chkdPolicy.click();

public void clickContinue() {

btnContinue.click();

public String getConfirmationMsg() {

try {

return (msgConfirmation.getText());

} catch (Exception e) {

return (e.getMessage());
}

package pageObjects;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.support.PageFactory;

public class BasePage {

WebDriver driver;

public BasePage(WebDriver driver)

this.driver=driver;

PageFactory.initElements(driver,this);

package pageObjects;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.support.FindBy;

import org.openqa.selenium.support.ui.Select;
public class CheckoutPage extends BasePage{

public CheckoutPage(WebDriver driver)

super(driver);

@FindBy(xpath="//input[@id='input-payment-firstname']")

WebElement txtfirstName;

@FindBy(xpath="//input[@id='input-payment-lastname']")

WebElement txtlastName;

@FindBy(xpath="//input[@id='input-payment-address-1']")

WebElement txtaddress1;

@FindBy(xpath="//input[@id='input-payment-address-2']")

WebElement txtaddress2;

@FindBy(xpath="//input[@id='input-payment-city']")

WebElement txtcity;

@FindBy(xpath="//input[@id='input-payment-postcode']")

WebElement txtpin;

@FindBy(xpath="//select[@id='input-payment-country']")

WebElement drpCountry;

@FindBy(xpath="//select[@id='input-payment-zone']")

WebElement drpState;
@FindBy(xpath="//input[@id='button-payment-address']")

WebElement btncontinueBillingAddress;

@FindBy(xpath="//input[@id='button-shipping-address']")

WebElement btncontinueDeliveryAddress;

@FindBy(xpath="//textarea[@name='comment']")

WebElement txtDeliveryMethod;

@FindBy(xpath="//input[@id='button-shipping-method']")

WebElement btncontinueShippingAddress;

@FindBy(xpath="//input[@name='agree']")

WebElement chkboxTerms;

@FindBy(xpath="//input[@id='button-payment-method']")

WebElement btncontinuePaymentMethod;

@FindBy(xpath="//strong[text()='Total:']//following::td")

WebElement lblTotalPrice;

@FindBy(xpath="//input[@id='button-confirm']")

WebElement btnConfOrder;

@FindBy(xpath="//*[@id='content']/h1")

WebElement lblOrderConMsg;

public void setfirstName(String firstName) {

txtfirstName.sendKeys(firstName);
}

public void setlastName(String lastName) {

txtlastName.sendKeys(lastName);

public void setaddress1(String address1) {

txtaddress1.sendKeys(address1);

public void setaddress2(String address2) {

txtaddress2.sendKeys(address2);

public void setcity(String city) {

txtcity.sendKeys(city);

public void setpin(String pin) {

txtpin.sendKeys(pin);

public void setCountry(String Country) {

new Select(drpCountry).selectByVisibleText(Country);

public void setState(String State) {

new Select(drpState).selectByVisibleText(State);

}
public void clickOnContinueAfterBillingAddress()

btncontinueBillingAddress.click();

public void clickOnContinueAfterDeliveryAddress()

btncontinueDeliveryAddress.click();

public void setDeliveryMethodComment(String deliverymsg)

txtDeliveryMethod.sendKeys(deliverymsg);

public void clickOnContinueAfterDeliveryMethod()

btncontinueShippingAddress.click();

public void selectTermsAndConditions()

chkboxTerms.click();

public void clickOnContinueAfterPaymentMethod()

btncontinuePaymentMethod.click();

}
public String getTotalPriceBeforeConfOrder()

return lblTotalPrice.getText(); //$207.00

public void clickOnConfirmOrder() {

btnConfOrder.click();

public boolean isOrderPlaced() throws InterruptedException

try

driver.switchTo().alert().accept();

Thread.sleep(2000);

btnConfOrder.click();

Thread.sleep(3000);

if(lblOrderConMsg.getText().equals("Your order has been placed!"))

return true;

else

return false;

}catch(Exception e)

return false;

}
}

package pageObjects;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.support.FindBy;

public class HomePage extends BasePage {

public HomePage(WebDriver driver) {

super(driver);

// Elements

@FindBy(xpath = "//span[text()='My Account']")

WebElement lnkMyaccount;

@FindBy(linkText = "Register")

WebElement lnkRegister;

@FindBy(linkText = "Login") // Login link added in step6

WebElement linkLogin;

@FindBy(xpath="//input[@placeholder='Search']") //For Search Product Test

WebElement txtSearchbox;

@FindBy(xpath="//div[@id='search']//button[@type='button']") //For Search


Product Test

WebElement btnSearch;
// Action Methods

public void clickMyAccount() {

lnkMyaccount.click();

public void clickRegister() {

lnkRegister.click();

public void clickLogin() // added in step6

linkLogin.click();

public void enterProductName(String pName) //For Search Product Test

txtSearchbox.sendKeys(pName);

public void clickSearch() //For Search Product Test

btnSearch.click();

package pageObjects;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;

import org.openqa.selenium.support.FindBy;

public class LoginPage extends BasePage {

public LoginPage(WebDriver driver) {

super(driver);

@FindBy(xpath = "//input[@id='input-email']")

WebElement txtEmailAddress;

@FindBy(xpath = "//input[@id='input-password']")

WebElement txtPassword;

@FindBy(xpath = "//input[@value='Login']")

WebElement btnLogin;

public void setEmail(String email) {

txtEmailAddress.sendKeys(email);

public void setPassword(String pwd) {

txtPassword.sendKeys(pwd);

public void clickLogin() {

btnLogin.click();

}
}

package pageObjects;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.support.FindBy;

public class MyAccountPage extends BasePage {

public MyAccountPage(WebDriver driver) {

super(driver);

@FindBy(xpath = "//h2[text()='My Account']") // MyAccount Page heading

WebElement msgHeading;

@FindBy(xpath = "//div[@class='list-group']//a[text()='Logout']")

WebElement lnkLogout;

public boolean isMyAccountPageExists() // MyAccount Page heading display


status

try {

return (msgHeading.isDisplayed());

} catch (Exception e) {

return (false);

}
public void clickLogout() {

lnkLogout.click();

package pageObjects;

import java.util.List;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.support.FindBy;

public class SearchPage extends BasePage

WebDriver driver;

public SearchPage(WebDriver driver)

super(driver);

@FindBy(xpath="//*[@id='content']/div[3]//img")

List<WebElement> searchProducts;

@FindBy(xpath="//input[@id='input-quantity']")

WebElement txtquantity;
@FindBy(xpath="//button[@id='button-cart']")

WebElement btnaddToCart;

@FindBy(xpath="//div[contains(text(),'Success: You have added')]")

WebElement cnfMsg;

public boolean isProductExist(String productName)

boolean flag=false;

for(WebElement product:searchProducts)

if(product.getAttribute("title").equals(productName))

flag=true;

break;

return flag;

public void selectProduct(String productName)

for(WebElement product:searchProducts)

if(product.getAttribute("title").equals(productName))

product.click();

}
}

public void setQuantity(String qty)

txtquantity.clear();

txtquantity.sendKeys(qty);

public void addToCart()

btnaddToCart.click();

public boolean checkConfMsg()

try

return cnfMsg.isDisplayed();

catch(Exception e)

return false;

package pageObjects;
import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.support.FindBy;

public class ShoppingCartPage extends BasePage

public ShoppingCartPage(WebDriver driver)

super(driver);

//@FindBy(xpath="//button[@aria-expanded='false']")

@FindBy(xpath="//div[@id='cart']")

WebElement btnItems;

@FindBy(xpath="//strong[normalize-space()='View Cart']")

WebElement lnkViewCart;

@FindBy(xpath="//*[@id='content']/div[2]/div/table//strong[text()='Total:']//
following::td")

WebElement lblTotalPrice; //$246.40

@FindBy(xpath="//a[text()='Checkout']")

WebElement btnCheckout;

public void clickItemsToNavigateToCart()

btnItems.click();

}
public void clickViewCart()

lnkViewCart.click();

public String getTotalPrice()

return lblTotalPrice.getText();

public void clickOnCheckout()

btnCheckout.click();

package stepDefinitions;

import java.io.IOException;

import java.util.HashMap;

import java.util.List;

import org.junit.Assert;

import org.openqa.selenium.WebDriver;

import factory.BaseClass;

import io.cucumber.java.en.Given;

import io.cucumber.java.en.Then;

import io.cucumber.java.en.When;
import pageObjects.HomePage;

import pageObjects.LoginPage;

import pageObjects.MyAccountPage;

import utilities.DataReader;

import utilities.DataReader;

public class LoginSteps {

WebDriver driver;

HomePage hp;

LoginPage lp;

MyAccountPage macc;

List<HashMap<String, String>> datamap; //Data driven

@Given("the user navigates to login page")

public void user_navigate_to_login_page() {

BaseClass.getLogger().info("Goto my account-->Click on Login.. ");

hp=new HomePage(BaseClass.getDriver());

hp.clickMyAccount();

hp.clickLogin();

@When("user enters email as {string} and password as {string}")

public void user_enters_email_as_and_password_as(String email, String pwd) {

BaseClass.getLogger().info("Entering email and password.. ");

lp=new LoginPage(BaseClass.getDriver());
lp.setEmail(email);

lp.setPassword(pwd);

@When("the user clicks on the Login button")

public void click_on_login_button() {

lp.clickLogin();

BaseClass.getLogger().info("clicked on login button...");

@Then("the user should be redirected to the MyAccount Page")

public void user_navigates_to_my_account_page() {

macc=new MyAccountPage(BaseClass.getDriver());

boolean targetpage=macc.isMyAccountPageExists();

Assert.assertEquals(targetpage, true);

//******* Data Driven test **************

@Then("the user should be redirected to the MyAccount Page by passing email and
password with excel row {string}")

public void
check_user_navigates_to_my_account_page_by_passing_email_and_password_with_excel
_data(String rows)

try {

datamap=DataReader.data(System.getProperty("user.dir")+"\\testData\\
Opencart_LoginData.xlsx", "Sheet1");

catch (IOException e)
{

e.printStackTrace();

int index=Integer.parseInt(rows)-1;

String email= datamap.get(index).get("username");

String pwd= datamap.get(index).get("password");

String exp_res= datamap.get(index).get("res");

lp=new LoginPage(BaseClass.getDriver());

lp.setEmail(email);

lp.setPassword(pwd);

lp.clickLogin();

macc=new MyAccountPage(BaseClass.getDriver());

try

boolean targetpage=macc.isMyAccountPageExists();

System.out.println("target page: "+ targetpage);

if(exp_res.equalsIgnoreCase("Valid"))

if(targetpage==true)

MyAccountPage myaccpage=new MyAccountPage(BaseClass.getDriver());

myaccpage.clickLogout();

Assert.assertTrue(true);

else

Assert.assertTrue(false);
}

if(exp_res.equalsIgnoreCase("Invalid"))

if(targetpage==true)

macc.clickLogout();

Assert.assertTrue(false);

else

Assert.assertTrue(true);

catch(Exception e)

Assert.assertTrue(false);

package stepDefinitions;

import java.util.Map;
import org.junit.Assert;

import org.openqa.selenium.WebDriver;

import factory.BaseClass;

import io.cucumber.datatable.DataTable;

import io.cucumber.java.en.Given;

import io.cucumber.java.en.Then;

import io.cucumber.java.en.When;

import pageObjects.AccountRegistrationPage;

import pageObjects.HomePage;

import pageObjects.LoginPage;

public class RegistrationSteps {

WebDriver driver;

HomePage hp;

LoginPage lp;

AccountRegistrationPage regpage;

@Given("the user navigates to Register Account page")

public void user_navigates_to_register_account_page() {

hp=new HomePage(BaseClass.getDriver());

hp.clickMyAccount();

hp.clickRegister();

@When("the user enters the details into below fields")

public void user_enters_the_details_into_below_fields(DataTable dataTable) {


Map<String, String> dataMap = dataTable.asMap(String.class,String.class);

regpage=new AccountRegistrationPage(BaseClass.getDriver());

regpage.setFirstName(dataMap.get("firstName"));

regpage.setLastName(dataMap.get("lastName"));

regpage.setEmail(BaseClass.randomAlphaNumeric()+"@gmail.com");

regpage.setTelephone(dataMap.get("telephone"));

regpage.setPassword(dataMap.get("password"));

regpage.setConfirmPassword(dataMap.get("password"));

@When("the user selects Privacy Policy")

public void user_selects_privacy_policy() {

regpage.setPrivacyPolicy();

@When("the user clicks on Continue button")

public void user_clicks_on_continue_button() {

regpage.clickContinue();

@Then("the user account should get created successfully")

public void user_account_should_get_created_successfully() {

String confmsg=regpage.getConfirmationMsg();

Assert.assertEquals(confmsg, "Your Account Has Been Created!");

}
package testRunner;

import org.junit.runner.RunWith;

import io.cucumber.junit.Cucumber;

import io.cucumber.junit.CucumberOptions;

@RunWith(Cucumber.class)

@CucumberOptions(

//features= {".//Features/"},

//features= {".//Features/Login.feature"},

//features= {".//Features/Registration.feature"},

//features= {".//Features/LoginDDTExcel.feature"},

features= {".//Features/Login.feature",".//Features/Registration.feature"},

//features= {"@target/rerun.txt"},

glue={"stepDefinitions","hooks"},

plugin= {

"pretty", "html:reports/myreport.html",

"com.aventstack.extentreports.cucumber.adapter.ExtentCucumberAdapter:",

"rerun:target/rerun.txt",

},

dryRun=false, // checks mapping between scenario steps and step definition


methods

monochrome=true, // to avoid junk characters in output

publish=true // to publish report in cucumber server

//tags="@sanity" // this will execute scenarios tagged with @sanity


//tags="@regression"

//tags="@sanity and @regression" //Scenarios tagged with both @sanity and


@regression

//tags="@sanity and not @regression" //Scenarios tagged with @sanity but not
tagged with @regression

//tags="@sanity or @regression" //Scenarios tagged with either @sanity or


@regression

public class TestRunner {

package utilities;

import java.io.FileInputStream;

import java.io.IOException;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

//import org.apache.poi.ss.usermodel.Cell;

//import org.apache.poi.ss.usermodel.Row;

import org.apache.poi.ss.usermodel.CellStyle;

import org.apache.poi.ss.usermodel.DataFormatter;

import org.apache.poi.ss.usermodel.FillPatternType;

import org.apache.poi.ss.usermodel.IndexedColors;

import org.apache.poi.xssf.usermodel.XSSFCell;

import org.apache.poi.xssf.usermodel.XSSFRow;

import org.apache.poi.xssf.usermodel.XSSFSheet;

import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class DataReader {

public static HashMap<String, String> storeValues = new HashMap();

public static List<HashMap<String, String>> data(String filepath, String


sheetName) throws IOException

List<HashMap<String, String>> mydata = new ArrayList<>();

FileInputStream file = new FileInputStream(filepath);

XSSFWorkbook workbook = new XSSFWorkbook(file);

XSSFSheet sheet = workbook.getSheet(sheetName);

int totalRows=sheet.getLastRowNum();

XSSFRow headerRow=sheet.getRow(0);

for (int i = 1; i <= totalRows; i++)

XSSFRow currentRow = sheet.getRow(i);

HashMap<String, String> currentHash = new HashMap<String, String>();

for (int j = 0; j < currentRow.getLastCellNum(); j++)

XSSFCell currentCell = currentRow.getCell(j);

currentHash.put(headerRow.getCell(j).toString(), currentCell.toString());

mydata.add(currentHash);
}

file.close();

return mydata;

<?xml version="1.0" encoding="UTF-8"?>

<Configuration status="WARN">

<Properties>

<Property name="basePath">./logs</Property>

</Properties>

<Appenders>

<Console name="Console" target="SYSTEM_OUT">

<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>

</Console>

<RollingFile name="File" fileName="${basePath}/automation.log" filePattern="$


{basePath}/automation-%d{yyyy-MM-dd}.log">

<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level - %msg%n"/>

<SizeBasedTriggeringPolicy size="50000" />

</RollingFile>

</Appenders>

<Loggers>

<Root level="All"> <!-- Here you can use multiple log levels All <
Trace < Debug < Info < Warn < Error < Fatal < Off -->

<AppenderRef ref="File"/> <!-- <AppenderRef ref="Console"/> -->

</Root>
</Loggers>

</Configuration>

<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>opencart_cucumber_framework</groupId>

<artifactId>opencart_cucumber_framework</artifactId>

<version>0.0.1-SNAPSHOT</version>

<packaging>jar</packaging>

<name>opencart_cucumber_framework</name>

<url>http://maven.apache.org</url>

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

</properties>

<build>

<pluginManagement>

<plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-compiler-plugin</artifactId>

<version>3.11.0</version>

</plugin>
<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-surefire-plugin</artifactId>

<version>3.1.2</version>

</plugin>

</plugins>

</pluginManagement>

</build>

<dependencies>

<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java --
>

<dependency>

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

<artifactId>selenium-java</artifactId>

<version>4.20.0</version>

</dependency>

<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-junit -->

<dependency>

<groupId>io.cucumber</groupId>

<artifactId>cucumber-junit</artifactId>

<version>7.17.0</version>

<scope>test</scope>

</dependency>

<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-java -->

<dependency>

<groupId>io.cucumber</groupId>
<artifactId>cucumber-java</artifactId>

<version>7.17.0</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->

<dependency>

<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-core</artifactId>

<version>2.20.0</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api -->

<dependency>

<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-api</artifactId>

<version>2.20.0</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->

<dependency>

<groupId>org.apache.poi</groupId>

<artifactId>poi</artifactId>

<version>5.2.3</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->

<dependency>

<groupId>org.apache.poi</groupId>

<artifactId>poi-ooxml</artifactId>

<version>5.2.3</version>
</dependency>

<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->

<dependency>

<groupId>commons-io</groupId>

<artifactId>commons-io</artifactId>

<version>2.11.0</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->

<dependency>

<groupId>org.apache.commons</groupId>

<artifactId>commons-lang3</artifactId>

<version>3.12.0</version>

</dependency>

<!-- https://mvnrepository.com/artifact/tech.grasshopper/extentreports-
cucumber7-adapter/1.14.0 -->

<dependency>

<groupId>tech.grasshopper</groupId>

<artifactId>extentreports-cucumber7-adapter</artifactId>

<version>1.14.0</version>

</dependency>

</dependencies>

</project>

-------------------------------------------------------------------------------

Test set: Account Registration


-------------------------------------------------------------------------------

Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 1.874 s <<<


FAILURE! -- in Account Registration

Account Registration.Successful Account Registration -- Time elapsed: 1.874 s


<<< ERROR!

java.lang.NullPointerException

at java.base/java.util.Objects.requireNonNull(Objects.java:209)

at
java.base/java.util.ImmutableCollections$Map1.<init>(ImmutableCollections.java:1
105)

at java.base/java.util.Map.of(Map.java:1353)

at org.openqa.selenium.remote.DriverCommand.GET(DriverCommand.java:180)

at org.openqa.selenium.remote.RemoteWebDriver.get(RemoteWebDriver.java:300)

at hooks.Hooks.setup(Hooks.java:28)

-------------------------------------------------------------------------------

Test set: Login with Valid Credentials

-------------------------------------------------------------------------------

Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 181.8 s <<<


FAILURE! -- in Login with Valid Credentials

Login with Valid Credentials.Successful Login with Valid Credentials -- Time


elapsed: 181.8 s <<< ERROR!

org.openqa.selenium.TimeoutException:

java.util.concurrent.TimeoutException

Build info: version: '4.20.0', revision: '866c76ca80'

System info: os.name: 'Windows 11', os.arch: 'amd64', os.version: '10.0',


java.version: '17.0.9'

Driver info: org.openqa.selenium.chrome.ChromeDriver

Command: [377f6b3a0d38e119d65746d010b32502, maximizeCurrentWindow {}]

Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion:


124.0.6367.202, chrome: {chromedriverVersion: 124.0.6367.207 (a9001a6e39f...,
userDataDir: C:\Users\pavan\AppData\Loca...}, fedcm:accounts: true,
goog:chromeOptions: {debuggerAddress: localhost:62242},
networkConnectionEnabled: false, pageLoadStrategy: normal, platformName:
windows, proxy: Proxy(), se:cdp: ws://localhost:62242/devtoo..., se:cdpVersion:
124.0.6367.202, setWindowRect: true, strictFileInteractability: false, timeouts:
{implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss
and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob:
true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true,
webauthn:virtualAuthenticators: true}

at
org.openqa.selenium.remote.http.jdk.JdkHttpClient.execute0(JdkHttpClient.java:39
6)

at
org.openqa.selenium.remote.http.AddSeleniumUserAgent.lambda$apply$0(AddSeleniumU
serAgent.java:42)

at org.openqa.selenium.remote.http.Filter.lambda$andFinally$1(Filter.java:55)

at
org.openqa.selenium.remote.http.jdk.JdkHttpClient.execute(JdkHttpClient.java:352
)

at
org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:
187)

at
org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCom
mandExecutor.java:216)

at
org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandEx
ecutor.java:174)

at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:518)

at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:591)

at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:595)

at
org.openqa.selenium.remote.RemoteWebDriver$RemoteWebDriverOptions$RemoteWindow.m
aximize(RemoteWebDriver.java:1034)

at hooks.Hooks.setup(Hooks.java:29)

Caused by: java.util.concurrent.TimeoutException

at
java.base/java.util.concurrent.CompletableFuture.timedGet(CompletableFuture.java
:1960)

at
java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2095
)

at
org.openqa.selenium.remote.http.jdk.JdkHttpClient.execute0(JdkHttpClient.java:37
9)
at
org.openqa.selenium.remote.http.AddSeleniumUserAgent.lambda$apply$0(AddSeleniumU
serAgent.java:42)

at org.openqa.selenium.remote.http.Filter.lambda$andFinally$1(Filter.java:55)

at
org.openqa.selenium.remote.http.jdk.JdkHttpClient.execute(JdkHttpClient.java:352
)

at
org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:
187)

at
org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCom
mandExecutor.java:216)

at
org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandEx
ecutor.java:174)

at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:518)

at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:591)

at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:595)

at
org.openqa.selenium.remote.RemoteWebDriver$RemoteWebDriverOptions$RemoteWindow.m
aximize(RemoteWebDriver.java:1034)

at hooks.Hooks.setup(Hooks.java:29)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)

at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcces
sorImpl.java:77)

at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMet
hodAccessorImpl.java:43)

at java.base/java.lang.reflect.Method.invoke(Method.java:568)

at io.cucumber.java.Invoker.doInvoke(Invoker.java:66)

at io.cucumber.java.Invoker.invoke(Invoker.java:24)

at
io.cucumber.java.AbstractGlueDefinition.invokeMethod(AbstractGlueDefinition.java
:47)

at io.cucumber.java.JavaHookDefinition.execute(JavaHookDefinition.java:64)
at
io.cucumber.core.runner.CoreHookDefinition.execute(CoreHookDefinition.java:46)

at
io.cucumber.core.runner.HookDefinitionMatch.runStep(HookDefinitionMatch.java:21)

at io.cucumber.core.runner.ExecutionMode$1.execute(ExecutionMode.java:10)

at io.cucumber.core.runner.TestStep.executeStep(TestStep.java:81)

at io.cucumber.core.runner.TestStep.run(TestStep.java:53)

at io.cucumber.core.runner.TestCase.run(TestCase.java:78)

at io.cucumber.core.runner.Runner.runPickle(Runner.java:75)

at
io.cucumber.junit.PickleRunners$NoStepDescriptions.lambda$run$0(PickleRunners.ja
va:151)

at
io.cucumber.core.runtime.CucumberExecutionContext.lambda$runTestCase$5(CucumberE
xecutionContext.java:136)

at
io.cucumber.core.runtime.RethrowingThrowableCollector.executeAndThrow(Rethrowing
ThrowableCollector.java:23)

at
io.cucumber.core.runtime.CucumberExecutionContext.runTestCase(CucumberExecutionC
ontext.java:136)

at
io.cucumber.junit.PickleRunners$NoStepDescriptions.run(PickleRunners.java:148)

at io.cucumber.junit.FeatureRunner.runChild(FeatureRunner.java:144)

at io.cucumber.junit.FeatureRunner.runChild(FeatureRunner.java:28)

at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)

at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)

at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)

at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)

at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)

at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)

at org.junit.runners.ParentRunner.run(ParentRunner.java:413)

at io.cucumber.junit.FeatureRunner.run(FeatureRunner.java:137)

at io.cucumber.junit.Cucumber.runChild(Cucumber.java:196)

at io.cucumber.junit.Cucumber.runChild(Cucumber.java:89)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)

at org.apache.maven.surefire.junitcore.pc.Scheduler$1.run(Scheduler.java:345)

at
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539
)

at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)

at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.j
ava:1136)

at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.
java:635)

at java.base/java.lang.Thread.run(Thread.java:840)

<?xml version="1.0" encoding="UTF-8"?>

<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-
plugin/xsd/surefire-test-report-3.0.xsd" version="3.0" name="Account
Registration" time="1.874" tests="1" errors="1" skipped="0" failures="0">

<properties>

<property name="java.specification.version" value="17"/>

<property name="sun.cpu.isalist" value="amd64"/>

<property name="sun.jnu.encoding" value="Cp1252"/>

<property name="java.class.path" value="C:\Automation\myworkspaces\


seleniumwebdriver\opencart_cucumber\target\test-classes;C:\Automation\
myworkspaces\seleniumwebdriver\opencart_cucumber\target\classes;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-java\4.20.0\selenium-java-
4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-api\
4.20.0\selenium-api-4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-chrome-driver\4.20.0\selenium-chrome-driver-4.20.0.jar;C:\
Users\pavan\.m2\repository\com\google\auto\service\auto-service-annotations\
1.1.1\auto-service-annotations-1.1.1.jar;C:\Users\pavan\.m2\repository\org\
seleniumhq\selenium\selenium-chromium-driver\4.20.0\selenium-chromium-driver-
4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-json\
4.20.0\selenium-json-4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-manager\4.20.0\selenium-manager-4.20.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-devtools-v122\4.20.0\selenium-
devtools-v122-4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-devtools-v123\4.20.0\selenium-devtools-v123-4.20.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-devtools-v124\4.20.0\
selenium-devtools-v124-4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-devtools-v85\4.20.0\selenium-devtools-v85-4.20.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-edge-driver\4.20.0\
selenium-edge-driver-4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-firefox-driver\4.20.0\selenium-firefox-driver-4.20.0.jar;C:\
Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-http\4.20.0\
selenium-http-4.20.0.jar;C:\Users\pavan\.m2\repository\dev\failsafe\failsafe\
3.3.2\failsafe-3.3.2.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-ie-driver\4.20.0\selenium-ie-driver-4.20.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-remote-driver\4.20.0\selenium-
remote-driver-4.20.0.jar;C:\Users\pavan\.m2\repository\com\google\guava\guava\
33.1.0-jre\guava-33.1.0-jre.jar;C:\Users\pavan\.m2\repository\com\google\guava\
failureaccess\1.0.2\failureaccess-1.0.2.jar;C:\Users\pavan\.m2\repository\com\
google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\
listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;C:\Users\
pavan\.m2\repository\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;C:\
Users\pavan\.m2\repository\org\checkerframework\checker-qual\3.42.0\checker-
qual-3.42.0.jar;C:\Users\pavan\.m2\repository\com\google\errorprone\
error_prone_annotations\2.26.1\error_prone_annotations-2.26.1.jar;C:\Users\
pavan\.m2\repository\com\google\j2objc\j2objc-annotations\3.0.0\j2objc-
annotations-3.0.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\semconv\
opentelemetry-semconv\1.25.0-alpha\opentelemetry-semconv-1.25.0-alpha.jar;C:\
Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-api\1.37.0\
opentelemetry-api-1.37.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\
opentelemetry-context\1.37.0\opentelemetry-context-1.37.0.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-exporter-logging\1.37.0\
opentelemetry-exporter-logging-1.37.0.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-sdk-common\1.37.0\opentelemetry-sdk-common-
1.37.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-
extension-autoconfigure-spi\1.37.0\opentelemetry-sdk-extension-autoconfigure-
spi-1.37.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-
extension-autoconfigure\1.37.0\opentelemetry-sdk-extension-autoconfigure-
1.37.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-api-
incubator\1.37.0-alpha\opentelemetry-api-incubator-1.37.0-alpha.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-trace\1.37.0\
opentelemetry-sdk-trace-1.37.0.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-sdk\1.37.0\opentelemetry-sdk-1.37.0.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-metrics\1.37.0\
opentelemetry-sdk-metrics-1.37.0.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-sdk-logs\1.37.0\opentelemetry-sdk-logs-
1.37.0.jar;C:\Users\pavan\.m2\repository\net\bytebuddy\byte-buddy\1.14.14\byte-
buddy-1.14.14.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-os\4.20.0\selenium-os-4.20.0.jar;C:\Users\pavan\.m2\repository\org\
apache\commons\commons-exec\1.4.0\commons-exec-1.4.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-safari-driver\4.20.0\selenium-
safari-driver-4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-support\4.20.0\selenium-support-4.20.0.jar;C:\Users\pavan\.m2\
repository\io\cucumber\cucumber-junit\7.17.0\cucumber-junit-7.17.0.jar;C:\Users\
pavan\.m2\repository\org\apiguardian\apiguardian-api\1.1.2\apiguardian-api-
1.1.2.jar;C:\Users\pavan\.m2\repository\io\cucumber\cucumber-core\7.17.0\
cucumber-core-7.17.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\cucumber-
gherkin\7.17.0\cucumber-gherkin-7.17.0.jar;C:\Users\pavan\.m2\repository\io\
cucumber\cucumber-gherkin-messages\7.17.0\cucumber-gherkin-messages-
7.17.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\gherkin\28.0.0\gherkin-
28.0.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\messages\24.1.0\messages-
24.1.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\testng-xml-formatter\0.1.0\
testng-xml-formatter-0.1.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\query\
12.1.2\query-12.1.2.jar;C:\Users\pavan\.m2\repository\io\cucumber\tag-
expressions\6.1.0\tag-expressions-6.1.0.jar;C:\Users\pavan\.m2\repository\io\
cucumber\cucumber-expressions\17.1.0\cucumber-expressions-17.1.0.jar;C:\Users\
pavan\.m2\repository\io\cucumber\datatable\7.17.0\datatable-7.17.0.jar;C:\Users\
pavan\.m2\repository\io\cucumber\cucumber-plugin\7.17.0\cucumber-plugin-
7.17.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\docstring\7.17.0\docstring-
7.17.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\html-formatter\21.3.1\html-
formatter-21.3.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\junit-xml-
formatter\0.4.0\junit-xml-formatter-0.4.0.jar;C:\Users\pavan\.m2\repository\io\
cucumber\ci-environment\10.0.1\ci-environment-10.0.1.jar;C:\Users\pavan\.m2\
repository\junit\junit\4.13.2\junit-4.13.2.jar;C:\Users\pavan\.m2\repository\
org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\pavan\.m2\
repository\io\cucumber\cucumber-java\7.17.0\cucumber-java-7.17.0.jar;C:\Users\
pavan\.m2\repository\org\apache\logging\log4j\log4j-core\2.20.0\log4j-core-
2.20.0.jar;C:\Users\pavan\.m2\repository\org\apache\logging\log4j\log4j-api\
2.20.0\log4j-api-2.20.0.jar;C:\Users\pavan\.m2\repository\org\apache\poi\poi\
5.2.3\poi-5.2.3.jar;C:\Users\pavan\.m2\repository\commons-codec\commons-codec\
1.15\commons-codec-1.15.jar;C:\Users\pavan\.m2\repository\org\apache\commons\
commons-collections4\4.4\commons-collections4-4.4.jar;C:\Users\pavan\.m2\
repository\org\apache\commons\commons-math3\3.6.1\commons-math3-3.6.1.jar;C:\
Users\pavan\.m2\repository\com\zaxxer\SparseBitSet\1.2\SparseBitSet-1.2.jar;C:\
Users\pavan\.m2\repository\org\apache\poi\poi-ooxml\5.2.3\poi-ooxml-
5.2.3.jar;C:\Users\pavan\.m2\repository\org\apache\poi\poi-ooxml-lite\5.2.3\poi-
ooxml-lite-5.2.3.jar;C:\Users\pavan\.m2\repository\org\apache\xmlbeans\xmlbeans\
5.1.1\xmlbeans-5.1.1.jar;C:\Users\pavan\.m2\repository\org\apache\commons\
commons-compress\1.21\commons-compress-1.21.jar;C:\Users\pavan\.m2\repository\
com\github\virtuald\curvesapi\1.07\curvesapi-1.07.jar;C:\Users\pavan\.m2\
repository\commons-io\commons-io\2.11.0\commons-io-2.11.0.jar;C:\Users\
pavan\.m2\repository\org\apache\commons\commons-lang3\3.12.0\commons-lang3-
3.12.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\extentreports-
cucumber7-adapter\1.14.0\extentreports-cucumber7-adapter-1.14.0.jar;C:\Users\
pavan\.m2\repository\com\aventstack\extentreports\5.1.0\extentreports-
5.1.0.jar;C:\Users\pavan\.m2\repository\io\reactivex\rxjava3\rxjava\3.1.6\
rxjava-3.1.6.jar;C:\Users\pavan\.m2\repository\org\reactivestreams\reactive-
streams\1.0.4\reactive-streams-1.0.4.jar;C:\Users\pavan\.m2\repository\org\
freemarker\freemarker\2.3.32\freemarker-2.3.32.jar;C:\Users\pavan\.m2\
repository\org\projectlombok\lombok\1.18.26\lombok-1.18.26.jar;C:\Users\
pavan\.m2\repository\com\google\code\gson\gson\2.10.1\gson-2.10.1.jar;C:\Users\
pavan\.m2\repository\tech\grasshopper\extent-pdf-report\2.12.0\extent-pdf-
report-2.12.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\cucumber-pdf-
report\2.14.0\cucumber-pdf-report-2.14.0.jar;C:\Users\pavan\.m2\repository\org\
apache\pdfbox\pdfbox\2.0.26\pdfbox-2.0.26.jar;C:\Users\pavan\.m2\repository\org\
apache\pdfbox\fontbox\2.0.26\fontbox-2.0.26.jar;C:\Users\pavan\.m2\repository\
org\knowm\xchart\xchart\3.8.0\xchart-3.8.0.jar;C:\Users\pavan\.m2\repository\de\
erichseifert\vectorgraphics2d\VectorGraphics2D\0.13\VectorGraphics2D-
0.13.jar;C:\Users\pavan\.m2\repository\de\rototor\pdfbox\graphics2d\0.30\
graphics2d-0.30.jar;C:\Users\pavan\.m2\repository\com\madgag\animated-gif-lib\
1.4\animated-gif-lib-1.4.jar;C:\Users\pavan\.m2\repository\org\yaml\snakeyaml\
2.0\snakeyaml-2.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\table-
layout\1.5.1\table-layout-1.5.1.jar;C:\Users\pavan\.m2\repository\tech\
grasshopper\rest-assured-cucumber-pdf-report\1.5.0\rest-assured-cucumber-pdf-
report-1.5.0.jar;C:\Users\pavan\.m2\repository\org\jsoup\jsoup\1.15.3\jsoup-
1.15.3.jar;C:\Users\pavan\.m2\repository\com\aventstack\klov-reporter\5.1.0\
klov-reporter-5.1.0.jar;C:\Users\pavan\.m2\repository\org\mongodb\mongodb-
driver\3.6.4\mongodb-driver-3.6.4.jar;C:\Users\pavan\.m2\repository\org\mongodb\
mongodb-driver-core\3.6.4\mongodb-driver-core-3.6.4.jar;C:\Users\pavan\.m2\
repository\org\mongodb\bson\3.6.4\bson-3.6.4.jar;C:\Users\pavan\.m2\repository\
org\apache\httpcomponents\httpclient\4.5.13\httpclient-4.5.13.jar;C:\Users\
pavan\.m2\repository\org\apache\httpcomponents\httpcore\4.4.13\httpcore-
4.4.13.jar;C:\Users\pavan\.m2\repository\commons-logging\commons-logging\1.2\
commons-logging-1.2.jar;C:\Users\pavan\.m2\repository\org\apache\httpcomponents\
httpmime\4.5.13\httpmime-4.5.13.jar;C:\Users\pavan\.m2\repository\tech\
grasshopper\htmlextentreporter\1.1.0\htmlextentreporter-1.1.0.jar;C:\Users\
pavan\.m2\repository\tech\grasshopper\extent-excel-report\1.4.0\extent-excel-
report-1.4.0.jar;"/>

<property name="java.vm.vendor" value="Eclipse Adoptium"/>

<property name="sun.arch.data.model" value="64"/>

<property name="user.variant" value=""/>

<property name="java.vendor.url" value="https://adoptium.net/"/>

<property name="user.timezone" value="Asia/Calcutta"/>

<property name="os.name" value="Windows 11"/>

<property name="java.vm.specification.version" value="17"/>

<property name="sun.java.launcher" value="SUN_STANDARD"/>

<property name="user.country" value="IN"/>

<property name="sun.boot.library.path" value="C:\Users\pavan\.p2\pool\plugins\


org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\
jre\bin"/>

<property name="sun.java.command" value="C:\Users\pavan\AppData\Local\Temp\


surefire7420492517410185998\surefirebooter-20240514133230774_3.jar C:\Users\
pavan\AppData\Local\Temp\surefire7420492517410185998 2024-05-14T13-32-30_661-
jvmRun1 surefire-20240514133230774_1tmp surefire_0-20240514133230774_2tmp"/>

<property name="jdk.debug" value="release"/>

<property name="surefire.test.class.path" value="C:\Automation\myworkspaces\


seleniumwebdriver\opencart_cucumber\target\test-classes;C:\Automation\
myworkspaces\seleniumwebdriver\opencart_cucumber\target\classes;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-java\4.20.0\selenium-java-
4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-api\
4.20.0\selenium-api-4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-chrome-driver\4.20.0\selenium-chrome-driver-4.20.0.jar;C:\
Users\pavan\.m2\repository\com\google\auto\service\auto-service-annotations\
1.1.1\auto-service-annotations-1.1.1.jar;C:\Users\pavan\.m2\repository\org\
seleniumhq\selenium\selenium-chromium-driver\4.20.0\selenium-chromium-driver-
4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-json\
4.20.0\selenium-json-4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-manager\4.20.0\selenium-manager-4.20.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-devtools-v122\4.20.0\selenium-
devtools-v122-4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-devtools-v123\4.20.0\selenium-devtools-v123-4.20.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-devtools-v124\4.20.0\
selenium-devtools-v124-4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-devtools-v85\4.20.0\selenium-devtools-v85-4.20.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-edge-driver\4.20.0\
selenium-edge-driver-4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-firefox-driver\4.20.0\selenium-firefox-driver-4.20.0.jar;C:\
Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-http\4.20.0\
selenium-http-4.20.0.jar;C:\Users\pavan\.m2\repository\dev\failsafe\failsafe\
3.3.2\failsafe-3.3.2.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-ie-driver\4.20.0\selenium-ie-driver-4.20.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-remote-driver\4.20.0\selenium-
remote-driver-4.20.0.jar;C:\Users\pavan\.m2\repository\com\google\guava\guava\
33.1.0-jre\guava-33.1.0-jre.jar;C:\Users\pavan\.m2\repository\com\google\guava\
failureaccess\1.0.2\failureaccess-1.0.2.jar;C:\Users\pavan\.m2\repository\com\
google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\
listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;C:\Users\
pavan\.m2\repository\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;C:\
Users\pavan\.m2\repository\org\checkerframework\checker-qual\3.42.0\checker-
qual-3.42.0.jar;C:\Users\pavan\.m2\repository\com\google\errorprone\
error_prone_annotations\2.26.1\error_prone_annotations-2.26.1.jar;C:\Users\
pavan\.m2\repository\com\google\j2objc\j2objc-annotations\3.0.0\j2objc-
annotations-3.0.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\semconv\
opentelemetry-semconv\1.25.0-alpha\opentelemetry-semconv-1.25.0-alpha.jar;C:\
Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-api\1.37.0\
opentelemetry-api-1.37.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\
opentelemetry-context\1.37.0\opentelemetry-context-1.37.0.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-exporter-logging\1.37.0\
opentelemetry-exporter-logging-1.37.0.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-sdk-common\1.37.0\opentelemetry-sdk-common-
1.37.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-
extension-autoconfigure-spi\1.37.0\opentelemetry-sdk-extension-autoconfigure-
spi-1.37.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-
extension-autoconfigure\1.37.0\opentelemetry-sdk-extension-autoconfigure-
1.37.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-api-
incubator\1.37.0-alpha\opentelemetry-api-incubator-1.37.0-alpha.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-trace\1.37.0\
opentelemetry-sdk-trace-1.37.0.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-sdk\1.37.0\opentelemetry-sdk-1.37.0.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-metrics\1.37.0\
opentelemetry-sdk-metrics-1.37.0.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-sdk-logs\1.37.0\opentelemetry-sdk-logs-
1.37.0.jar;C:\Users\pavan\.m2\repository\net\bytebuddy\byte-buddy\1.14.14\byte-
buddy-1.14.14.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-os\4.20.0\selenium-os-4.20.0.jar;C:\Users\pavan\.m2\repository\org\
apache\commons\commons-exec\1.4.0\commons-exec-1.4.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-safari-driver\4.20.0\selenium-
safari-driver-4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-support\4.20.0\selenium-support-4.20.0.jar;C:\Users\pavan\.m2\
repository\io\cucumber\cucumber-junit\7.17.0\cucumber-junit-7.17.0.jar;C:\Users\
pavan\.m2\repository\org\apiguardian\apiguardian-api\1.1.2\apiguardian-api-
1.1.2.jar;C:\Users\pavan\.m2\repository\io\cucumber\cucumber-core\7.17.0\
cucumber-core-7.17.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\cucumber-
gherkin\7.17.0\cucumber-gherkin-7.17.0.jar;C:\Users\pavan\.m2\repository\io\
cucumber\cucumber-gherkin-messages\7.17.0\cucumber-gherkin-messages-
7.17.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\gherkin\28.0.0\gherkin-
28.0.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\messages\24.1.0\messages-
24.1.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\testng-xml-formatter\0.1.0\
testng-xml-formatter-0.1.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\query\
12.1.2\query-12.1.2.jar;C:\Users\pavan\.m2\repository\io\cucumber\tag-
expressions\6.1.0\tag-expressions-6.1.0.jar;C:\Users\pavan\.m2\repository\io\
cucumber\cucumber-expressions\17.1.0\cucumber-expressions-17.1.0.jar;C:\Users\
pavan\.m2\repository\io\cucumber\datatable\7.17.0\datatable-7.17.0.jar;C:\Users\
pavan\.m2\repository\io\cucumber\cucumber-plugin\7.17.0\cucumber-plugin-
7.17.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\docstring\7.17.0\docstring-
7.17.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\html-formatter\21.3.1\html-
formatter-21.3.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\junit-xml-
formatter\0.4.0\junit-xml-formatter-0.4.0.jar;C:\Users\pavan\.m2\repository\io\
cucumber\ci-environment\10.0.1\ci-environment-10.0.1.jar;C:\Users\pavan\.m2\
repository\junit\junit\4.13.2\junit-4.13.2.jar;C:\Users\pavan\.m2\repository\
org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\pavan\.m2\
repository\io\cucumber\cucumber-java\7.17.0\cucumber-java-7.17.0.jar;C:\Users\
pavan\.m2\repository\org\apache\logging\log4j\log4j-core\2.20.0\log4j-core-
2.20.0.jar;C:\Users\pavan\.m2\repository\org\apache\logging\log4j\log4j-api\
2.20.0\log4j-api-2.20.0.jar;C:\Users\pavan\.m2\repository\org\apache\poi\poi\
5.2.3\poi-5.2.3.jar;C:\Users\pavan\.m2\repository\commons-codec\commons-codec\
1.15\commons-codec-1.15.jar;C:\Users\pavan\.m2\repository\org\apache\commons\
commons-collections4\4.4\commons-collections4-4.4.jar;C:\Users\pavan\.m2\
repository\org\apache\commons\commons-math3\3.6.1\commons-math3-3.6.1.jar;C:\
Users\pavan\.m2\repository\com\zaxxer\SparseBitSet\1.2\SparseBitSet-1.2.jar;C:\
Users\pavan\.m2\repository\org\apache\poi\poi-ooxml\5.2.3\poi-ooxml-
5.2.3.jar;C:\Users\pavan\.m2\repository\org\apache\poi\poi-ooxml-lite\5.2.3\poi-
ooxml-lite-5.2.3.jar;C:\Users\pavan\.m2\repository\org\apache\xmlbeans\xmlbeans\
5.1.1\xmlbeans-5.1.1.jar;C:\Users\pavan\.m2\repository\org\apache\commons\
commons-compress\1.21\commons-compress-1.21.jar;C:\Users\pavan\.m2\repository\
com\github\virtuald\curvesapi\1.07\curvesapi-1.07.jar;C:\Users\pavan\.m2\
repository\commons-io\commons-io\2.11.0\commons-io-2.11.0.jar;C:\Users\
pavan\.m2\repository\org\apache\commons\commons-lang3\3.12.0\commons-lang3-
3.12.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\extentreports-
cucumber7-adapter\1.14.0\extentreports-cucumber7-adapter-1.14.0.jar;C:\Users\
pavan\.m2\repository\com\aventstack\extentreports\5.1.0\extentreports-
5.1.0.jar;C:\Users\pavan\.m2\repository\io\reactivex\rxjava3\rxjava\3.1.6\
rxjava-3.1.6.jar;C:\Users\pavan\.m2\repository\org\reactivestreams\reactive-
streams\1.0.4\reactive-streams-1.0.4.jar;C:\Users\pavan\.m2\repository\org\
freemarker\freemarker\2.3.32\freemarker-2.3.32.jar;C:\Users\pavan\.m2\
repository\org\projectlombok\lombok\1.18.26\lombok-1.18.26.jar;C:\Users\
pavan\.m2\repository\com\google\code\gson\gson\2.10.1\gson-2.10.1.jar;C:\Users\
pavan\.m2\repository\tech\grasshopper\extent-pdf-report\2.12.0\extent-pdf-
report-2.12.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\cucumber-pdf-
report\2.14.0\cucumber-pdf-report-2.14.0.jar;C:\Users\pavan\.m2\repository\org\
apache\pdfbox\pdfbox\2.0.26\pdfbox-2.0.26.jar;C:\Users\pavan\.m2\repository\org\
apache\pdfbox\fontbox\2.0.26\fontbox-2.0.26.jar;C:\Users\pavan\.m2\repository\
org\knowm\xchart\xchart\3.8.0\xchart-3.8.0.jar;C:\Users\pavan\.m2\repository\de\
erichseifert\vectorgraphics2d\VectorGraphics2D\0.13\VectorGraphics2D-
0.13.jar;C:\Users\pavan\.m2\repository\de\rototor\pdfbox\graphics2d\0.30\
graphics2d-0.30.jar;C:\Users\pavan\.m2\repository\com\madgag\animated-gif-lib\
1.4\animated-gif-lib-1.4.jar;C:\Users\pavan\.m2\repository\org\yaml\snakeyaml\
2.0\snakeyaml-2.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\table-
layout\1.5.1\table-layout-1.5.1.jar;C:\Users\pavan\.m2\repository\tech\
grasshopper\rest-assured-cucumber-pdf-report\1.5.0\rest-assured-cucumber-pdf-
report-1.5.0.jar;C:\Users\pavan\.m2\repository\org\jsoup\jsoup\1.15.3\jsoup-
1.15.3.jar;C:\Users\pavan\.m2\repository\com\aventstack\klov-reporter\5.1.0\
klov-reporter-5.1.0.jar;C:\Users\pavan\.m2\repository\org\mongodb\mongodb-
driver\3.6.4\mongodb-driver-3.6.4.jar;C:\Users\pavan\.m2\repository\org\mongodb\
mongodb-driver-core\3.6.4\mongodb-driver-core-3.6.4.jar;C:\Users\pavan\.m2\
repository\org\mongodb\bson\3.6.4\bson-3.6.4.jar;C:\Users\pavan\.m2\repository\
org\apache\httpcomponents\httpclient\4.5.13\httpclient-4.5.13.jar;C:\Users\
pavan\.m2\repository\org\apache\httpcomponents\httpcore\4.4.13\httpcore-
4.4.13.jar;C:\Users\pavan\.m2\repository\commons-logging\commons-logging\1.2\
commons-logging-1.2.jar;C:\Users\pavan\.m2\repository\org\apache\httpcomponents\
httpmime\4.5.13\httpmime-4.5.13.jar;C:\Users\pavan\.m2\repository\tech\
grasshopper\htmlextentreporter\1.1.0\htmlextentreporter-1.1.0.jar;C:\Users\
pavan\.m2\repository\tech\grasshopper\extent-excel-report\1.4.0\extent-excel-
report-1.4.0.jar;"/>

<property name="sun.cpu.endian" value="little"/>

<property name="user.home" value="C:\Users\pavan"/>

<property name="user.language" value="en"/>

<property name="java.specification.vendor" value="Oracle Corporation"/>

<property name="java.version.date" value="2023-10-17"/>

<property name="java.home" value="C:\Users\pavan\.p2\pool\plugins\


org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\
jre"/>

<property name="file.separator" value="\"/>

<property name="style.color" value="always"/>

<property name="basedir" value="C:\Automation\myworkspaces\seleniumwebdriver\


opencart_cucumber"/>

<property name="java.vm.compressedOopsMode" value="Zero based"/>

<property name="line.separator" value="&#10;"/>

<property name="java.vm.specification.vendor" value="Oracle Corporation"/>

<property name="java.specification.name" value="Java Platform API


Specification"/>

<property name="surefire.real.class.path" value="C:\Users\pavan\AppData\Local\


Temp\surefire7420492517410185998\surefirebooter-20240514133230774_3.jar"/>

<property name="user.script" value=""/>

<property name="sun.management.compiler" value="HotSpot 64-Bit Tiered


Compilers"/>

<property name="java.runtime.version" value="17.0.9+9"/>

<property name="user.name" value="pavan"/>

<property name="path.separator" value=";"/>

<property name="os.version" value="10.0"/>


<property name="java.runtime.name" value="OpenJDK Runtime Environment"/>

<property name="file.encoding" value="Cp1252"/>

<property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>

<property name="java.vendor.version" value="Temurin-17.0.9+9"/>

<property name="localRepository" value="C:\Users\pavan\.m2\repository"/>

<property name="java.vendor.url.bug"
value="https://github.com/adoptium/adoptium-support/issues"/>

<property name="java.io.tmpdir" value="C:\Users\pavan\AppData\Local\Temp\"/>

<property name="java.version" value="17.0.9"/>

<property name="user.dir" value="C:\Automation\myworkspaces\seleniumwebdriver\


opencart_cucumber"/>

<property name="os.arch" value="amd64"/>

<property name="java.vm.specification.name" value="Java Virtual Machine


Specification"/>

<property name="sun.os.patch.level" value=""/>

<property name="native.encoding" value="Cp1252"/>

<property name="java.library.path" value="C:\Users\pavan\.p2\pool\plugins\


org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\
jre\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Users/
pavan/.p2/pool/plugins/
org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858/
jre/bin/server;C:/Users/pavan/.p2/pool/plugins/
org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858/
jre/bin;C:\Program Files (x86)\VMware\VMware Player\bin\;C:\Program Files\Common
Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\
Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\
OpenSSH\;C:\Program Files\Java\jdk-17\bin\;C:\Program Files\Docker\Docker\
resources\bin;C:\Program Files\apache-maven-3.9.6\bin;C:\Program Files\Git\
cmd;C:\Users\pavan\AppData\Local\Microsoft\WindowsApps;;C:\Users\pavan\OneDrive\
Desktop;;."/>

<property name="java.vm.info" value="mixed mode"/>

<property name="java.vendor" value="Eclipse Adoptium"/>

<property name="java.vm.version" value="17.0.9+9"/>

<property name="sun.io.unicode.encoding" value="UnicodeLittle"/>

<property name="java.class.version" value="61.0"/>

</properties>

<testcase name="Successful Account Registration" classname="Account


Registration" time="1.874">
<error type="java.lang.NullPointerException"><!
[CDATA[java.lang.NullPointerException

at java.base/java.util.Objects.requireNonNull(Objects.java:209)

at
java.base/java.util.ImmutableCollections$Map1.<init>(ImmutableCollections.java:1
105)

at java.base/java.util.Map.of(Map.java:1353)

at org.openqa.selenium.remote.DriverCommand.GET(DriverCommand.java:180)

at org.openqa.selenium.remote.RemoteWebDriver.get(RemoteWebDriver.java:300)

at hooks.Hooks.setup(Hooks.java:28)

]]></error>

<system-out><![CDATA[

@regression

Scenario: Successful Account Registration #


Features/Registration.feature:4

java.lang.NullPointerException

at java.base/java.util.Objects.requireNonNull(Objects.java:209)

at
java.base/java.util.ImmutableCollections$Map1.<init>(ImmutableCollections.java:1
105)

at java.base/java.util.Map.of(Map.java:1353)

at org.openqa.selenium.remote.DriverCommand.GET(DriverCommand.java:180)

at org.openqa.selenium.remote.RemoteWebDriver.get(RemoteWebDriver.java:300)

at hooks.Hooks.setup(Hooks.java:28)

Given the user navigates to Register Account page #


stepDefinitions.RegistrationSteps.user_navigates_to_register_account_page()

When the user enters the details into below fields #


stepDefinitions.RegistrationSteps.user_enters_the_details_into_below_fields(io.c
ucumber.datatable.DataTable)

| firstName | John |

| lastName | Kenedy |

| telephone | 1234567890 |

| password | test@123 |
And the user selects Privacy Policy #
stepDefinitions.RegistrationSteps.user_selects_privacy_policy()

And the user clicks on Continue button #


stepDefinitions.RegistrationSteps.user_clicks_on_continue_button()

Then the user account should get created successfully #


stepDefinitions.RegistrationSteps.user_account_should_get_created_successfully()

]]></system-out>

</testcase>

</testsuite>

<?xml version="1.0" encoding="UTF-8"?>

<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-
plugin/xsd/surefire-test-report-3.0.xsd" version="3.0" name="Login with Valid
Credentials" time="181.8" tests="1" errors="1" skipped="0" failures="0">

<properties>

<property name="java.specification.version" value="17"/>

<property name="sun.cpu.isalist" value="amd64"/>

<property name="sun.jnu.encoding" value="Cp1252"/>

<property name="java.class.path" value="C:\Automation\myworkspaces\


seleniumwebdriver\opencart_cucumber\target\test-classes;C:\Automation\
myworkspaces\seleniumwebdriver\opencart_cucumber\target\classes;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-java\4.20.0\selenium-java-
4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-api\
4.20.0\selenium-api-4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-chrome-driver\4.20.0\selenium-chrome-driver-4.20.0.jar;C:\
Users\pavan\.m2\repository\com\google\auto\service\auto-service-annotations\
1.1.1\auto-service-annotations-1.1.1.jar;C:\Users\pavan\.m2\repository\org\
seleniumhq\selenium\selenium-chromium-driver\4.20.0\selenium-chromium-driver-
4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-json\
4.20.0\selenium-json-4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-manager\4.20.0\selenium-manager-4.20.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-devtools-v122\4.20.0\selenium-
devtools-v122-4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-devtools-v123\4.20.0\selenium-devtools-v123-4.20.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-devtools-v124\4.20.0\
selenium-devtools-v124-4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-devtools-v85\4.20.0\selenium-devtools-v85-4.20.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-edge-driver\4.20.0\
selenium-edge-driver-4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-firefox-driver\4.20.0\selenium-firefox-driver-4.20.0.jar;C:\
Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-http\4.20.0\
selenium-http-4.20.0.jar;C:\Users\pavan\.m2\repository\dev\failsafe\failsafe\
3.3.2\failsafe-3.3.2.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-ie-driver\4.20.0\selenium-ie-driver-4.20.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-remote-driver\4.20.0\selenium-
remote-driver-4.20.0.jar;C:\Users\pavan\.m2\repository\com\google\guava\guava\
33.1.0-jre\guava-33.1.0-jre.jar;C:\Users\pavan\.m2\repository\com\google\guava\
failureaccess\1.0.2\failureaccess-1.0.2.jar;C:\Users\pavan\.m2\repository\com\
google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\
listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;C:\Users\
pavan\.m2\repository\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;C:\
Users\pavan\.m2\repository\org\checkerframework\checker-qual\3.42.0\checker-
qual-3.42.0.jar;C:\Users\pavan\.m2\repository\com\google\errorprone\
error_prone_annotations\2.26.1\error_prone_annotations-2.26.1.jar;C:\Users\
pavan\.m2\repository\com\google\j2objc\j2objc-annotations\3.0.0\j2objc-
annotations-3.0.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\semconv\
opentelemetry-semconv\1.25.0-alpha\opentelemetry-semconv-1.25.0-alpha.jar;C:\
Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-api\1.37.0\
opentelemetry-api-1.37.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\
opentelemetry-context\1.37.0\opentelemetry-context-1.37.0.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-exporter-logging\1.37.0\
opentelemetry-exporter-logging-1.37.0.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-sdk-common\1.37.0\opentelemetry-sdk-common-
1.37.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-
extension-autoconfigure-spi\1.37.0\opentelemetry-sdk-extension-autoconfigure-
spi-1.37.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-
extension-autoconfigure\1.37.0\opentelemetry-sdk-extension-autoconfigure-
1.37.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-api-
incubator\1.37.0-alpha\opentelemetry-api-incubator-1.37.0-alpha.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-trace\1.37.0\
opentelemetry-sdk-trace-1.37.0.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-sdk\1.37.0\opentelemetry-sdk-1.37.0.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-metrics\1.37.0\
opentelemetry-sdk-metrics-1.37.0.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-sdk-logs\1.37.0\opentelemetry-sdk-logs-
1.37.0.jar;C:\Users\pavan\.m2\repository\net\bytebuddy\byte-buddy\1.14.14\byte-
buddy-1.14.14.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-os\4.20.0\selenium-os-4.20.0.jar;C:\Users\pavan\.m2\repository\org\
apache\commons\commons-exec\1.4.0\commons-exec-1.4.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-safari-driver\4.20.0\selenium-
safari-driver-4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-support\4.20.0\selenium-support-4.20.0.jar;C:\Users\pavan\.m2\
repository\io\cucumber\cucumber-junit\7.17.0\cucumber-junit-7.17.0.jar;C:\Users\
pavan\.m2\repository\org\apiguardian\apiguardian-api\1.1.2\apiguardian-api-
1.1.2.jar;C:\Users\pavan\.m2\repository\io\cucumber\cucumber-core\7.17.0\
cucumber-core-7.17.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\cucumber-
gherkin\7.17.0\cucumber-gherkin-7.17.0.jar;C:\Users\pavan\.m2\repository\io\
cucumber\cucumber-gherkin-messages\7.17.0\cucumber-gherkin-messages-
7.17.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\gherkin\28.0.0\gherkin-
28.0.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\messages\24.1.0\messages-
24.1.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\testng-xml-formatter\0.1.0\
testng-xml-formatter-0.1.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\query\
12.1.2\query-12.1.2.jar;C:\Users\pavan\.m2\repository\io\cucumber\tag-
expressions\6.1.0\tag-expressions-6.1.0.jar;C:\Users\pavan\.m2\repository\io\
cucumber\cucumber-expressions\17.1.0\cucumber-expressions-17.1.0.jar;C:\Users\
pavan\.m2\repository\io\cucumber\datatable\7.17.0\datatable-7.17.0.jar;C:\Users\
pavan\.m2\repository\io\cucumber\cucumber-plugin\7.17.0\cucumber-plugin-
7.17.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\docstring\7.17.0\docstring-
7.17.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\html-formatter\21.3.1\html-
formatter-21.3.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\junit-xml-
formatter\0.4.0\junit-xml-formatter-0.4.0.jar;C:\Users\pavan\.m2\repository\io\
cucumber\ci-environment\10.0.1\ci-environment-10.0.1.jar;C:\Users\pavan\.m2\
repository\junit\junit\4.13.2\junit-4.13.2.jar;C:\Users\pavan\.m2\repository\
org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\pavan\.m2\
repository\io\cucumber\cucumber-java\7.17.0\cucumber-java-7.17.0.jar;C:\Users\
pavan\.m2\repository\org\apache\logging\log4j\log4j-core\2.20.0\log4j-core-
2.20.0.jar;C:\Users\pavan\.m2\repository\org\apache\logging\log4j\log4j-api\
2.20.0\log4j-api-2.20.0.jar;C:\Users\pavan\.m2\repository\org\apache\poi\poi\
5.2.3\poi-5.2.3.jar;C:\Users\pavan\.m2\repository\commons-codec\commons-codec\
1.15\commons-codec-1.15.jar;C:\Users\pavan\.m2\repository\org\apache\commons\
commons-collections4\4.4\commons-collections4-4.4.jar;C:\Users\pavan\.m2\
repository\org\apache\commons\commons-math3\3.6.1\commons-math3-3.6.1.jar;C:\
Users\pavan\.m2\repository\com\zaxxer\SparseBitSet\1.2\SparseBitSet-1.2.jar;C:\
Users\pavan\.m2\repository\org\apache\poi\poi-ooxml\5.2.3\poi-ooxml-
5.2.3.jar;C:\Users\pavan\.m2\repository\org\apache\poi\poi-ooxml-lite\5.2.3\poi-
ooxml-lite-5.2.3.jar;C:\Users\pavan\.m2\repository\org\apache\xmlbeans\xmlbeans\
5.1.1\xmlbeans-5.1.1.jar;C:\Users\pavan\.m2\repository\org\apache\commons\
commons-compress\1.21\commons-compress-1.21.jar;C:\Users\pavan\.m2\repository\
com\github\virtuald\curvesapi\1.07\curvesapi-1.07.jar;C:\Users\pavan\.m2\
repository\commons-io\commons-io\2.11.0\commons-io-2.11.0.jar;C:\Users\
pavan\.m2\repository\org\apache\commons\commons-lang3\3.12.0\commons-lang3-
3.12.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\extentreports-
cucumber7-adapter\1.14.0\extentreports-cucumber7-adapter-1.14.0.jar;C:\Users\
pavan\.m2\repository\com\aventstack\extentreports\5.1.0\extentreports-
5.1.0.jar;C:\Users\pavan\.m2\repository\io\reactivex\rxjava3\rxjava\3.1.6\
rxjava-3.1.6.jar;C:\Users\pavan\.m2\repository\org\reactivestreams\reactive-
streams\1.0.4\reactive-streams-1.0.4.jar;C:\Users\pavan\.m2\repository\org\
freemarker\freemarker\2.3.32\freemarker-2.3.32.jar;C:\Users\pavan\.m2\
repository\org\projectlombok\lombok\1.18.26\lombok-1.18.26.jar;C:\Users\
pavan\.m2\repository\com\google\code\gson\gson\2.10.1\gson-2.10.1.jar;C:\Users\
pavan\.m2\repository\tech\grasshopper\extent-pdf-report\2.12.0\extent-pdf-
report-2.12.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\cucumber-pdf-
report\2.14.0\cucumber-pdf-report-2.14.0.jar;C:\Users\pavan\.m2\repository\org\
apache\pdfbox\pdfbox\2.0.26\pdfbox-2.0.26.jar;C:\Users\pavan\.m2\repository\org\
apache\pdfbox\fontbox\2.0.26\fontbox-2.0.26.jar;C:\Users\pavan\.m2\repository\
org\knowm\xchart\xchart\3.8.0\xchart-3.8.0.jar;C:\Users\pavan\.m2\repository\de\
erichseifert\vectorgraphics2d\VectorGraphics2D\0.13\VectorGraphics2D-
0.13.jar;C:\Users\pavan\.m2\repository\de\rototor\pdfbox\graphics2d\0.30\
graphics2d-0.30.jar;C:\Users\pavan\.m2\repository\com\madgag\animated-gif-lib\
1.4\animated-gif-lib-1.4.jar;C:\Users\pavan\.m2\repository\org\yaml\snakeyaml\
2.0\snakeyaml-2.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\table-
layout\1.5.1\table-layout-1.5.1.jar;C:\Users\pavan\.m2\repository\tech\
grasshopper\rest-assured-cucumber-pdf-report\1.5.0\rest-assured-cucumber-pdf-
report-1.5.0.jar;C:\Users\pavan\.m2\repository\org\jsoup\jsoup\1.15.3\jsoup-
1.15.3.jar;C:\Users\pavan\.m2\repository\com\aventstack\klov-reporter\5.1.0\
klov-reporter-5.1.0.jar;C:\Users\pavan\.m2\repository\org\mongodb\mongodb-
driver\3.6.4\mongodb-driver-3.6.4.jar;C:\Users\pavan\.m2\repository\org\mongodb\
mongodb-driver-core\3.6.4\mongodb-driver-core-3.6.4.jar;C:\Users\pavan\.m2\
repository\org\mongodb\bson\3.6.4\bson-3.6.4.jar;C:\Users\pavan\.m2\repository\
org\apache\httpcomponents\httpclient\4.5.13\httpclient-4.5.13.jar;C:\Users\
pavan\.m2\repository\org\apache\httpcomponents\httpcore\4.4.13\httpcore-
4.4.13.jar;C:\Users\pavan\.m2\repository\commons-logging\commons-logging\1.2\
commons-logging-1.2.jar;C:\Users\pavan\.m2\repository\org\apache\httpcomponents\
httpmime\4.5.13\httpmime-4.5.13.jar;C:\Users\pavan\.m2\repository\tech\
grasshopper\htmlextentreporter\1.1.0\htmlextentreporter-1.1.0.jar;C:\Users\
pavan\.m2\repository\tech\grasshopper\extent-excel-report\1.4.0\extent-excel-
report-1.4.0.jar;"/>

<property name="java.vm.vendor" value="Eclipse Adoptium"/>

<property name="sun.arch.data.model" value="64"/>

<property name="user.variant" value=""/>

<property name="java.vendor.url" value="https://adoptium.net/"/>

<property name="user.timezone" value="Asia/Calcutta"/>

<property name="os.name" value="Windows 11"/>

<property name="java.vm.specification.version" value="17"/>

<property name="sun.java.launcher" value="SUN_STANDARD"/>

<property name="user.country" value="IN"/>

<property name="sun.boot.library.path" value="C:\Users\pavan\.p2\pool\plugins\


org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\
jre\bin"/>

<property name="sun.java.command" value="C:\Users\pavan\AppData\Local\Temp\


surefire7420492517410185998\surefirebooter-20240514133230774_3.jar C:\Users\
pavan\AppData\Local\Temp\surefire7420492517410185998 2024-05-14T13-32-30_661-
jvmRun1 surefire-20240514133230774_1tmp surefire_0-20240514133230774_2tmp"/>

<property name="jdk.debug" value="release"/>

<property name="surefire.test.class.path" value="C:\Automation\myworkspaces\


seleniumwebdriver\opencart_cucumber\target\test-classes;C:\Automation\
myworkspaces\seleniumwebdriver\opencart_cucumber\target\classes;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-java\4.20.0\selenium-java-
4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-api\
4.20.0\selenium-api-4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-chrome-driver\4.20.0\selenium-chrome-driver-4.20.0.jar;C:\
Users\pavan\.m2\repository\com\google\auto\service\auto-service-annotations\
1.1.1\auto-service-annotations-1.1.1.jar;C:\Users\pavan\.m2\repository\org\
seleniumhq\selenium\selenium-chromium-driver\4.20.0\selenium-chromium-driver-
4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-json\
4.20.0\selenium-json-4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-manager\4.20.0\selenium-manager-4.20.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-devtools-v122\4.20.0\selenium-
devtools-v122-4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-devtools-v123\4.20.0\selenium-devtools-v123-4.20.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-devtools-v124\4.20.0\
selenium-devtools-v124-4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-devtools-v85\4.20.0\selenium-devtools-v85-4.20.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-edge-driver\4.20.0\
selenium-edge-driver-4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-firefox-driver\4.20.0\selenium-firefox-driver-4.20.0.jar;C:\
Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-http\4.20.0\
selenium-http-4.20.0.jar;C:\Users\pavan\.m2\repository\dev\failsafe\failsafe\
3.3.2\failsafe-3.3.2.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-ie-driver\4.20.0\selenium-ie-driver-4.20.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-remote-driver\4.20.0\selenium-
remote-driver-4.20.0.jar;C:\Users\pavan\.m2\repository\com\google\guava\guava\
33.1.0-jre\guava-33.1.0-jre.jar;C:\Users\pavan\.m2\repository\com\google\guava\
failureaccess\1.0.2\failureaccess-1.0.2.jar;C:\Users\pavan\.m2\repository\com\
google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\
listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;C:\Users\
pavan\.m2\repository\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;C:\
Users\pavan\.m2\repository\org\checkerframework\checker-qual\3.42.0\checker-
qual-3.42.0.jar;C:\Users\pavan\.m2\repository\com\google\errorprone\
error_prone_annotations\2.26.1\error_prone_annotations-2.26.1.jar;C:\Users\
pavan\.m2\repository\com\google\j2objc\j2objc-annotations\3.0.0\j2objc-
annotations-3.0.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\semconv\
opentelemetry-semconv\1.25.0-alpha\opentelemetry-semconv-1.25.0-alpha.jar;C:\
Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-api\1.37.0\
opentelemetry-api-1.37.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\
opentelemetry-context\1.37.0\opentelemetry-context-1.37.0.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-exporter-logging\1.37.0\
opentelemetry-exporter-logging-1.37.0.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-sdk-common\1.37.0\opentelemetry-sdk-common-
1.37.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-
extension-autoconfigure-spi\1.37.0\opentelemetry-sdk-extension-autoconfigure-
spi-1.37.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-
extension-autoconfigure\1.37.0\opentelemetry-sdk-extension-autoconfigure-
1.37.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-api-
incubator\1.37.0-alpha\opentelemetry-api-incubator-1.37.0-alpha.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-trace\1.37.0\
opentelemetry-sdk-trace-1.37.0.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-sdk\1.37.0\opentelemetry-sdk-1.37.0.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-metrics\1.37.0\
opentelemetry-sdk-metrics-1.37.0.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-sdk-logs\1.37.0\opentelemetry-sdk-logs-
1.37.0.jar;C:\Users\pavan\.m2\repository\net\bytebuddy\byte-buddy\1.14.14\byte-
buddy-1.14.14.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-os\4.20.0\selenium-os-4.20.0.jar;C:\Users\pavan\.m2\repository\org\
apache\commons\commons-exec\1.4.0\commons-exec-1.4.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-safari-driver\4.20.0\selenium-
safari-driver-4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-support\4.20.0\selenium-support-4.20.0.jar;C:\Users\pavan\.m2\
repository\io\cucumber\cucumber-junit\7.17.0\cucumber-junit-7.17.0.jar;C:\Users\
pavan\.m2\repository\org\apiguardian\apiguardian-api\1.1.2\apiguardian-api-
1.1.2.jar;C:\Users\pavan\.m2\repository\io\cucumber\cucumber-core\7.17.0\
cucumber-core-7.17.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\cucumber-
gherkin\7.17.0\cucumber-gherkin-7.17.0.jar;C:\Users\pavan\.m2\repository\io\
cucumber\cucumber-gherkin-messages\7.17.0\cucumber-gherkin-messages-
7.17.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\gherkin\28.0.0\gherkin-
28.0.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\messages\24.1.0\messages-
24.1.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\testng-xml-formatter\0.1.0\
testng-xml-formatter-0.1.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\query\
12.1.2\query-12.1.2.jar;C:\Users\pavan\.m2\repository\io\cucumber\tag-
expressions\6.1.0\tag-expressions-6.1.0.jar;C:\Users\pavan\.m2\repository\io\
cucumber\cucumber-expressions\17.1.0\cucumber-expressions-17.1.0.jar;C:\Users\
pavan\.m2\repository\io\cucumber\datatable\7.17.0\datatable-7.17.0.jar;C:\Users\
pavan\.m2\repository\io\cucumber\cucumber-plugin\7.17.0\cucumber-plugin-
7.17.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\docstring\7.17.0\docstring-
7.17.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\html-formatter\21.3.1\html-
formatter-21.3.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\junit-xml-
formatter\0.4.0\junit-xml-formatter-0.4.0.jar;C:\Users\pavan\.m2\repository\io\
cucumber\ci-environment\10.0.1\ci-environment-10.0.1.jar;C:\Users\pavan\.m2\
repository\junit\junit\4.13.2\junit-4.13.2.jar;C:\Users\pavan\.m2\repository\
org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\pavan\.m2\
repository\io\cucumber\cucumber-java\7.17.0\cucumber-java-7.17.0.jar;C:\Users\
pavan\.m2\repository\org\apache\logging\log4j\log4j-core\2.20.0\log4j-core-
2.20.0.jar;C:\Users\pavan\.m2\repository\org\apache\logging\log4j\log4j-api\
2.20.0\log4j-api-2.20.0.jar;C:\Users\pavan\.m2\repository\org\apache\poi\poi\
5.2.3\poi-5.2.3.jar;C:\Users\pavan\.m2\repository\commons-codec\commons-codec\
1.15\commons-codec-1.15.jar;C:\Users\pavan\.m2\repository\org\apache\commons\
commons-collections4\4.4\commons-collections4-4.4.jar;C:\Users\pavan\.m2\
repository\org\apache\commons\commons-math3\3.6.1\commons-math3-3.6.1.jar;C:\
Users\pavan\.m2\repository\com\zaxxer\SparseBitSet\1.2\SparseBitSet-1.2.jar;C:\
Users\pavan\.m2\repository\org\apache\poi\poi-ooxml\5.2.3\poi-ooxml-
5.2.3.jar;C:\Users\pavan\.m2\repository\org\apache\poi\poi-ooxml-lite\5.2.3\poi-
ooxml-lite-5.2.3.jar;C:\Users\pavan\.m2\repository\org\apache\xmlbeans\xmlbeans\
5.1.1\xmlbeans-5.1.1.jar;C:\Users\pavan\.m2\repository\org\apache\commons\
commons-compress\1.21\commons-compress-1.21.jar;C:\Users\pavan\.m2\repository\
com\github\virtuald\curvesapi\1.07\curvesapi-1.07.jar;C:\Users\pavan\.m2\
repository\commons-io\commons-io\2.11.0\commons-io-2.11.0.jar;C:\Users\
pavan\.m2\repository\org\apache\commons\commons-lang3\3.12.0\commons-lang3-
3.12.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\extentreports-
cucumber7-adapter\1.14.0\extentreports-cucumber7-adapter-1.14.0.jar;C:\Users\
pavan\.m2\repository\com\aventstack\extentreports\5.1.0\extentreports-
5.1.0.jar;C:\Users\pavan\.m2\repository\io\reactivex\rxjava3\rxjava\3.1.6\
rxjava-3.1.6.jar;C:\Users\pavan\.m2\repository\org\reactivestreams\reactive-
streams\1.0.4\reactive-streams-1.0.4.jar;C:\Users\pavan\.m2\repository\org\
freemarker\freemarker\2.3.32\freemarker-2.3.32.jar;C:\Users\pavan\.m2\
repository\org\projectlombok\lombok\1.18.26\lombok-1.18.26.jar;C:\Users\
pavan\.m2\repository\com\google\code\gson\gson\2.10.1\gson-2.10.1.jar;C:\Users\
pavan\.m2\repository\tech\grasshopper\extent-pdf-report\2.12.0\extent-pdf-
report-2.12.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\cucumber-pdf-
report\2.14.0\cucumber-pdf-report-2.14.0.jar;C:\Users\pavan\.m2\repository\org\
apache\pdfbox\pdfbox\2.0.26\pdfbox-2.0.26.jar;C:\Users\pavan\.m2\repository\org\
apache\pdfbox\fontbox\2.0.26\fontbox-2.0.26.jar;C:\Users\pavan\.m2\repository\
org\knowm\xchart\xchart\3.8.0\xchart-3.8.0.jar;C:\Users\pavan\.m2\repository\de\
erichseifert\vectorgraphics2d\VectorGraphics2D\0.13\VectorGraphics2D-
0.13.jar;C:\Users\pavan\.m2\repository\de\rototor\pdfbox\graphics2d\0.30\
graphics2d-0.30.jar;C:\Users\pavan\.m2\repository\com\madgag\animated-gif-lib\
1.4\animated-gif-lib-1.4.jar;C:\Users\pavan\.m2\repository\org\yaml\snakeyaml\
2.0\snakeyaml-2.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\table-
layout\1.5.1\table-layout-1.5.1.jar;C:\Users\pavan\.m2\repository\tech\
grasshopper\rest-assured-cucumber-pdf-report\1.5.0\rest-assured-cucumber-pdf-
report-1.5.0.jar;C:\Users\pavan\.m2\repository\org\jsoup\jsoup\1.15.3\jsoup-
1.15.3.jar;C:\Users\pavan\.m2\repository\com\aventstack\klov-reporter\5.1.0\
klov-reporter-5.1.0.jar;C:\Users\pavan\.m2\repository\org\mongodb\mongodb-
driver\3.6.4\mongodb-driver-3.6.4.jar;C:\Users\pavan\.m2\repository\org\mongodb\
mongodb-driver-core\3.6.4\mongodb-driver-core-3.6.4.jar;C:\Users\pavan\.m2\
repository\org\mongodb\bson\3.6.4\bson-3.6.4.jar;C:\Users\pavan\.m2\repository\
org\apache\httpcomponents\httpclient\4.5.13\httpclient-4.5.13.jar;C:\Users\
pavan\.m2\repository\org\apache\httpcomponents\httpcore\4.4.13\httpcore-
4.4.13.jar;C:\Users\pavan\.m2\repository\commons-logging\commons-logging\1.2\
commons-logging-1.2.jar;C:\Users\pavan\.m2\repository\org\apache\httpcomponents\
httpmime\4.5.13\httpmime-4.5.13.jar;C:\Users\pavan\.m2\repository\tech\
grasshopper\htmlextentreporter\1.1.0\htmlextentreporter-1.1.0.jar;C:\Users\
pavan\.m2\repository\tech\grasshopper\extent-excel-report\1.4.0\extent-excel-
report-1.4.0.jar;"/>

<property name="sun.cpu.endian" value="little"/>

<property name="user.home" value="C:\Users\pavan"/>

<property name="user.language" value="en"/>

<property name="java.specification.vendor" value="Oracle Corporation"/>

<property name="java.version.date" value="2023-10-17"/>

<property name="java.home" value="C:\Users\pavan\.p2\pool\plugins\


org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\
jre"/>

<property name="file.separator" value="\"/>

<property name="style.color" value="always"/>

<property name="basedir" value="C:\Automation\myworkspaces\seleniumwebdriver\


opencart_cucumber"/>

<property name="java.vm.compressedOopsMode" value="Zero based"/>

<property name="line.separator" value="&#10;"/>

<property name="java.vm.specification.vendor" value="Oracle Corporation"/>

<property name="java.specification.name" value="Java Platform API


Specification"/>

<property name="surefire.real.class.path" value="C:\Users\pavan\AppData\Local\


Temp\surefire7420492517410185998\surefirebooter-20240514133230774_3.jar"/>

<property name="user.script" value=""/>

<property name="sun.management.compiler" value="HotSpot 64-Bit Tiered


Compilers"/>

<property name="java.runtime.version" value="17.0.9+9"/>

<property name="user.name" value="pavan"/>

<property name="path.separator" value=";"/>

<property name="os.version" value="10.0"/>

<property name="java.runtime.name" value="OpenJDK Runtime Environment"/>

<property name="file.encoding" value="Cp1252"/>

<property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>


<property name="java.vendor.version" value="Temurin-17.0.9+9"/>

<property name="localRepository" value="C:\Users\pavan\.m2\repository"/>

<property name="java.vendor.url.bug"
value="https://github.com/adoptium/adoptium-support/issues"/>

<property name="java.io.tmpdir" value="C:\Users\pavan\AppData\Local\Temp\"/>

<property name="java.version" value="17.0.9"/>

<property name="user.dir" value="C:\Automation\myworkspaces\seleniumwebdriver\


opencart_cucumber"/>

<property name="os.arch" value="amd64"/>

<property name="java.vm.specification.name" value="Java Virtual Machine


Specification"/>

<property name="sun.os.patch.level" value=""/>

<property name="native.encoding" value="Cp1252"/>

<property name="java.library.path" value="C:\Users\pavan\.p2\pool\plugins\


org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\
jre\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Users/
pavan/.p2/pool/plugins/
org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858/
jre/bin/server;C:/Users/pavan/.p2/pool/plugins/
org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858/
jre/bin;C:\Program Files (x86)\VMware\VMware Player\bin\;C:\Program Files\Common
Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\
Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\
OpenSSH\;C:\Program Files\Java\jdk-17\bin\;C:\Program Files\Docker\Docker\
resources\bin;C:\Program Files\apache-maven-3.9.6\bin;C:\Program Files\Git\
cmd;C:\Users\pavan\AppData\Local\Microsoft\WindowsApps;;C:\Users\pavan\OneDrive\
Desktop;;."/>

<property name="java.vm.info" value="mixed mode"/>

<property name="java.vendor" value="Eclipse Adoptium"/>

<property name="java.vm.version" value="17.0.9+9"/>

<property name="sun.io.unicode.encoding" value="UnicodeLittle"/>

<property name="java.class.version" value="61.0"/>

</properties>

<testcase name="Successful Login with Valid Credentials" classname="Login with


Valid Credentials" time="181.8">

<error message="java.util.concurrent.TimeoutException&#10;Build info: version:


&apos;4.20.0&apos;, revision: &apos;866c76ca80&apos;&#10;System info: os.name:
&apos;Windows 11&apos;, os.arch: &apos;amd64&apos;, os.version:
&apos;10.0&apos;, java.version: &apos;17.0.9&apos;&#10;Driver info:
org.openqa.selenium.chrome.ChromeDriver&#10;Command:
[377f6b3a0d38e119d65746d010b32502, maximizeCurrentWindow {}]&#10;Capabilities
{acceptInsecureCerts: false, browserName: chrome, browserVersion:
124.0.6367.202, chrome: {chromedriverVersion: 124.0.6367.207 (a9001a6e39f...,
userDataDir: C:\Users\pavan\AppData\Loca...}, fedcm:accounts: true,
goog:chromeOptions: {debuggerAddress: localhost:62242},
networkConnectionEnabled: false, pageLoadStrategy: normal, platformName:
windows, proxy: Proxy(), se:cdp: ws://localhost:62242/devtoo..., se:cdpVersion:
124.0.6367.202, setWindowRect: true, strictFileInteractability: false, timeouts:
{implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss
and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob:
true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true,
webauthn:virtualAuthenticators: true}"
type="org.openqa.selenium.TimeoutException"><!
[CDATA[org.openqa.selenium.TimeoutException:

java.util.concurrent.TimeoutException

Build info: version: '4.20.0', revision: '866c76ca80'

System info: os.name: 'Windows 11', os.arch: 'amd64', os.version: '10.0',


java.version: '17.0.9'

Driver info: org.openqa.selenium.chrome.ChromeDriver

Command: [377f6b3a0d38e119d65746d010b32502, maximizeCurrentWindow {}]

Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion:


124.0.6367.202, chrome: {chromedriverVersion: 124.0.6367.207 (a9001a6e39f...,
userDataDir: C:\Users\pavan\AppData\Loca...}, fedcm:accounts: true,
goog:chromeOptions: {debuggerAddress: localhost:62242},
networkConnectionEnabled: false, pageLoadStrategy: normal, platformName:
windows, proxy: Proxy(), se:cdp: ws://localhost:62242/devtoo..., se:cdpVersion:
124.0.6367.202, setWindowRect: true, strictFileInteractability: false, timeouts:
{implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss
and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob:
true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true,
webauthn:virtualAuthenticators: true}

at
org.openqa.selenium.remote.http.jdk.JdkHttpClient.execute0(JdkHttpClient.java:39
6)

at
org.openqa.selenium.remote.http.AddSeleniumUserAgent.lambda$apply$0(AddSeleniumU
serAgent.java:42)

at org.openqa.selenium.remote.http.Filter.lambda$andFinally$1(Filter.java:55)

at
org.openqa.selenium.remote.http.jdk.JdkHttpClient.execute(JdkHttpClient.java:352
)

at
org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:
187)
at
org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCom
mandExecutor.java:216)

at
org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandEx
ecutor.java:174)

at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:518)

at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:591)

at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:595)

at
org.openqa.selenium.remote.RemoteWebDriver$RemoteWebDriverOptions$RemoteWindow.m
aximize(RemoteWebDriver.java:1034)

at hooks.Hooks.setup(Hooks.java:29)

Caused by: java.util.concurrent.TimeoutException

at
java.base/java.util.concurrent.CompletableFuture.timedGet(CompletableFuture.java
:1960)

at
java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2095
)

at
org.openqa.selenium.remote.http.jdk.JdkHttpClient.execute0(JdkHttpClient.java:37
9)

at
org.openqa.selenium.remote.http.AddSeleniumUserAgent.lambda$apply$0(AddSeleniumU
serAgent.java:42)

at org.openqa.selenium.remote.http.Filter.lambda$andFinally$1(Filter.java:55)

at
org.openqa.selenium.remote.http.jdk.JdkHttpClient.execute(JdkHttpClient.java:352
)

at
org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:
187)

at
org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCom
mandExecutor.java:216)

at
org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandEx
ecutor.java:174)

at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:518)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:591)

at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:595)

at
org.openqa.selenium.remote.RemoteWebDriver$RemoteWebDriverOptions$RemoteWindow.m
aximize(RemoteWebDriver.java:1034)

at hooks.Hooks.setup(Hooks.java:29)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)

at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcces
sorImpl.java:77)

at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMet
hodAccessorImpl.java:43)

at java.base/java.lang.reflect.Method.invoke(Method.java:568)

at io.cucumber.java.Invoker.doInvoke(Invoker.java:66)

at io.cucumber.java.Invoker.invoke(Invoker.java:24)

at
io.cucumber.java.AbstractGlueDefinition.invokeMethod(AbstractGlueDefinition.java
:47)

at io.cucumber.java.JavaHookDefinition.execute(JavaHookDefinition.java:64)

at
io.cucumber.core.runner.CoreHookDefinition.execute(CoreHookDefinition.java:46)

at
io.cucumber.core.runner.HookDefinitionMatch.runStep(HookDefinitionMatch.java:21)

at io.cucumber.core.runner.ExecutionMode$1.execute(ExecutionMode.java:10)

at io.cucumber.core.runner.TestStep.executeStep(TestStep.java:81)

at io.cucumber.core.runner.TestStep.run(TestStep.java:53)

at io.cucumber.core.runner.TestCase.run(TestCase.java:78)

at io.cucumber.core.runner.Runner.runPickle(Runner.java:75)

at
io.cucumber.junit.PickleRunners$NoStepDescriptions.lambda$run$0(PickleRunners.ja
va:151)

at
io.cucumber.core.runtime.CucumberExecutionContext.lambda$runTestCase$5(CucumberE
xecutionContext.java:136)
at
io.cucumber.core.runtime.RethrowingThrowableCollector.executeAndThrow(Rethrowing
ThrowableCollector.java:23)

at
io.cucumber.core.runtime.CucumberExecutionContext.runTestCase(CucumberExecutionC
ontext.java:136)

at
io.cucumber.junit.PickleRunners$NoStepDescriptions.run(PickleRunners.java:148)

at io.cucumber.junit.FeatureRunner.runChild(FeatureRunner.java:144)

at io.cucumber.junit.FeatureRunner.runChild(FeatureRunner.java:28)

at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)

at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)

at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)

at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)

at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)

at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)

at org.junit.runners.ParentRunner.run(ParentRunner.java:413)

at io.cucumber.junit.FeatureRunner.run(FeatureRunner.java:137)

at io.cucumber.junit.Cucumber.runChild(Cucumber.java:196)

at io.cucumber.junit.Cucumber.runChild(Cucumber.java:89)

at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)

at org.apache.maven.surefire.junitcore.pc.Scheduler$1.run(Scheduler.java:345)

at
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539
)

at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)

at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.j
ava:1136)

at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.
java:635)

at java.base/java.lang.Thread.run(Thread.java:840)

]]></error>

<system-out><![CDATA[
@sanity @regression

Scenario: Successful Login with Valid Credentials


# Features/Login.feature:4

org.openqa.selenium.TimeoutException: java.util.concurrent.TimeoutException

Build info: version: '4.20.0', revision: '866c76ca80'

System info: os.name: 'Windows 11', os.arch: 'amd64', os.version: '10.0',


java.version: '17.0.9'

Driver info: org.openqa.selenium.chrome.ChromeDriver

Command: [377f6b3a0d38e119d65746d010b32502, maximizeCurrentWindow {}]

Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion:


124.0.6367.202, chrome: {chromedriverVersion: 124.0.6367.207 (a9001a6e39f...,
userDataDir: C:\Users\pavan\AppData\Loca...}, fedcm:accounts: true,
goog:chromeOptions: {debuggerAddress: localhost:62242},
networkConnectionEnabled: false, pageLoadStrategy: normal, platformName:
windows, proxy: Proxy(), se:cdp: ws://localhost:62242/devtoo..., se:cdpVersion:
124.0.6367.202, setWindowRect: true, strictFileInteractability: false, timeouts:
{implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss
and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob:
true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true,
webauthn:virtualAuthenticators: true}

at
org.openqa.selenium.remote.http.jdk.JdkHttpClient.execute0(JdkHttpClient.java:39
6)

at
org.openqa.selenium.remote.http.AddSeleniumUserAgent.lambda$apply$0(AddSeleniumU
serAgent.java:42)

at org.openqa.selenium.remote.http.Filter.lambda$andFinally$1(Filter.java:55)

at
org.openqa.selenium.remote.http.jdk.JdkHttpClient.execute(JdkHttpClient.java:352
)

at
org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:
187)

at
org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCom
mandExecutor.java:216)

at
org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandEx
ecutor.java:174)

at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:518)

at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:591)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:595)

at
org.openqa.selenium.remote.RemoteWebDriver$RemoteWebDriverOptions$RemoteWindow.m
aximize(RemoteWebDriver.java:1034)

at hooks.Hooks.setup(Hooks.java:29)

Caused by: java.util.concurrent.TimeoutException

at
java.base/java.util.concurrent.CompletableFuture.timedGet(CompletableFuture.java
:1960)

at
java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2095
)

at
org.openqa.selenium.remote.http.jdk.JdkHttpClient.execute0(JdkHttpClient.java:37
9)

at
org.openqa.selenium.remote.http.AddSeleniumUserAgent.lambda$apply$0(AddSeleniumU
serAgent.java:42)

at org.openqa.selenium.remote.http.Filter.lambda$andFinally$1(Filter.java:55)

at
org.openqa.selenium.remote.http.jdk.JdkHttpClient.execute(JdkHttpClient.java:352
)

at
org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:
187)

at
org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCom
mandExecutor.java:216)

at
org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandEx
ecutor.java:174)

at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:518)

at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:591)

at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:595)

at
org.openqa.selenium.remote.RemoteWebDriver$RemoteWebDriverOptions$RemoteWindow.m
aximize(RemoteWebDriver.java:1034)

at hooks.Hooks.setup(Hooks.java:29)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcces
sorImpl.java:77)

at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMet
hodAccessorImpl.java:43)

at java.base/java.lang.reflect.Method.invoke(Method.java:568)

at io.cucumber.java.Invoker.doInvoke(Invoker.java:66)

at io.cucumber.java.Invoker.invoke(Invoker.java:24)

at
io.cucumber.java.AbstractGlueDefinition.invokeMethod(AbstractGlueDefinition.java
:47)

at io.cucumber.java.JavaHookDefinition.execute(JavaHookDefinition.java:64)

at
io.cucumber.core.runner.CoreHookDefinition.execute(CoreHookDefinition.java:46)

at
io.cucumber.core.runner.HookDefinitionMatch.runStep(HookDefinitionMatch.java:21)

at io.cucumber.core.runner.ExecutionMode$1.execute(ExecutionMode.java:10)

at io.cucumber.core.runner.TestStep.executeStep(TestStep.java:81)

at io.cucumber.core.runner.TestStep.run(TestStep.java:53)

at io.cucumber.core.runner.TestCase.run(TestCase.java:78)

at io.cucumber.core.runner.Runner.runPickle(Runner.java:75)

at
io.cucumber.junit.PickleRunners$NoStepDescriptions.lambda$run$0(PickleRunners.ja
va:151)

at
io.cucumber.core.runtime.CucumberExecutionContext.lambda$runTestCase$5(CucumberE
xecutionContext.java:136)

at
io.cucumber.core.runtime.RethrowingThrowableCollector.executeAndThrow(Rethrowing
ThrowableCollector.java:23)

at
io.cucumber.core.runtime.CucumberExecutionContext.runTestCase(CucumberExecutionC
ontext.java:136)

at
io.cucumber.junit.PickleRunners$NoStepDescriptions.run(PickleRunners.java:148)

at io.cucumber.junit.FeatureRunner.runChild(FeatureRunner.java:144)

at io.cucumber.junit.FeatureRunner.runChild(FeatureRunner.java:28)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)

at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)

at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)

at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)

at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)

at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)

at org.junit.runners.ParentRunner.run(ParentRunner.java:413)

at io.cucumber.junit.FeatureRunner.run(FeatureRunner.java:137)

at io.cucumber.junit.Cucumber.runChild(Cucumber.java:196)

at io.cucumber.junit.Cucumber.runChild(Cucumber.java:89)

at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)

at org.apache.maven.surefire.junitcore.pc.Scheduler$1.run(Scheduler.java:345)

at
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539
)

at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)

at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.j
ava:1136)

at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.
java:635)

at java.base/java.lang.Thread.run(Thread.java:840)

Given the user navigates to login page


# stepDefinitions.LoginSteps.user_navigate_to_login_page()

When user enters email as "[email protected]" and password as "test@123"


#
stepDefinitions.LoginSteps.user_enters_email_as_and_password_as(java.lang.String
,java.lang.String)

And the user clicks on the Login button


# stepDefinitions.LoginSteps.click_on_login_button()

Then the user should be redirected to the MyAccount Page


# stepDefinitions.LoginSteps.user_navigates_to_my_account_page()

]]></system-out>
</testcase>

</testsuite>

-------------------------------------------------------------------------------

Test set: testRunner.TestRunner

-------------------------------------------------------------------------------

Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 17.42 s -- in


testRunner.TestRunner

<?xml version="1.0" encoding="UTF-8"?>

<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-
plugin/xsd/surefire-test-report-3.0.xsd" version="3.0"
name="testRunner.TestRunner" time="17.421" tests="2" errors="0" skipped="0"
failures="0">

<properties>

<property name="java.specification.version" value="17"/>

<property name="sun.cpu.isalist" value="amd64"/>

<property name="sun.jnu.encoding" value="Cp1252"/>

<property name="java.class.path" value="C:\Automation\myworkspaces\


seleniumwebdriver\opencart_cucumber\target\test-classes;C:\Automation\
myworkspaces\seleniumwebdriver\opencart_cucumber\target\classes;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-java\4.20.0\selenium-java-
4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-api\
4.20.0\selenium-api-4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-chrome-driver\4.20.0\selenium-chrome-driver-4.20.0.jar;C:\
Users\pavan\.m2\repository\com\google\auto\service\auto-service-annotations\
1.1.1\auto-service-annotations-1.1.1.jar;C:\Users\pavan\.m2\repository\org\
seleniumhq\selenium\selenium-chromium-driver\4.20.0\selenium-chromium-driver-
4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-json\
4.20.0\selenium-json-4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-manager\4.20.0\selenium-manager-4.20.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-devtools-v122\4.20.0\selenium-
devtools-v122-4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-devtools-v123\4.20.0\selenium-devtools-v123-4.20.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-devtools-v124\4.20.0\
selenium-devtools-v124-4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-devtools-v85\4.20.0\selenium-devtools-v85-4.20.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-edge-driver\4.20.0\
selenium-edge-driver-4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-firefox-driver\4.20.0\selenium-firefox-driver-4.20.0.jar;C:\
Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-http\4.20.0\
selenium-http-4.20.0.jar;C:\Users\pavan\.m2\repository\dev\failsafe\failsafe\
3.3.2\failsafe-3.3.2.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-ie-driver\4.20.0\selenium-ie-driver-4.20.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-remote-driver\4.20.0\selenium-
remote-driver-4.20.0.jar;C:\Users\pavan\.m2\repository\com\google\guava\guava\
33.1.0-jre\guava-33.1.0-jre.jar;C:\Users\pavan\.m2\repository\com\google\guava\
failureaccess\1.0.2\failureaccess-1.0.2.jar;C:\Users\pavan\.m2\repository\com\
google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\
listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;C:\Users\
pavan\.m2\repository\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;C:\
Users\pavan\.m2\repository\org\checkerframework\checker-qual\3.42.0\checker-
qual-3.42.0.jar;C:\Users\pavan\.m2\repository\com\google\errorprone\
error_prone_annotations\2.26.1\error_prone_annotations-2.26.1.jar;C:\Users\
pavan\.m2\repository\com\google\j2objc\j2objc-annotations\3.0.0\j2objc-
annotations-3.0.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\semconv\
opentelemetry-semconv\1.25.0-alpha\opentelemetry-semconv-1.25.0-alpha.jar;C:\
Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-api\1.37.0\
opentelemetry-api-1.37.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\
opentelemetry-context\1.37.0\opentelemetry-context-1.37.0.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-exporter-logging\1.37.0\
opentelemetry-exporter-logging-1.37.0.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-sdk-common\1.37.0\opentelemetry-sdk-common-
1.37.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-
extension-autoconfigure-spi\1.37.0\opentelemetry-sdk-extension-autoconfigure-
spi-1.37.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-
extension-autoconfigure\1.37.0\opentelemetry-sdk-extension-autoconfigure-
1.37.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-api-
incubator\1.37.0-alpha\opentelemetry-api-incubator-1.37.0-alpha.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-trace\1.37.0\
opentelemetry-sdk-trace-1.37.0.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-sdk\1.37.0\opentelemetry-sdk-1.37.0.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-metrics\1.37.0\
opentelemetry-sdk-metrics-1.37.0.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-sdk-logs\1.37.0\opentelemetry-sdk-logs-
1.37.0.jar;C:\Users\pavan\.m2\repository\net\bytebuddy\byte-buddy\1.14.14\byte-
buddy-1.14.14.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-os\4.20.0\selenium-os-4.20.0.jar;C:\Users\pavan\.m2\repository\org\
apache\commons\commons-exec\1.4.0\commons-exec-1.4.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-safari-driver\4.20.0\selenium-
safari-driver-4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-support\4.20.0\selenium-support-4.20.0.jar;C:\Users\pavan\.m2\
repository\io\cucumber\cucumber-junit\7.17.0\cucumber-junit-7.17.0.jar;C:\Users\
pavan\.m2\repository\org\apiguardian\apiguardian-api\1.1.2\apiguardian-api-
1.1.2.jar;C:\Users\pavan\.m2\repository\io\cucumber\cucumber-core\7.17.0\
cucumber-core-7.17.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\cucumber-
gherkin\7.17.0\cucumber-gherkin-7.17.0.jar;C:\Users\pavan\.m2\repository\io\
cucumber\cucumber-gherkin-messages\7.17.0\cucumber-gherkin-messages-
7.17.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\gherkin\28.0.0\gherkin-
28.0.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\messages\24.1.0\messages-
24.1.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\testng-xml-formatter\0.1.0\
testng-xml-formatter-0.1.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\query\
12.1.2\query-12.1.2.jar;C:\Users\pavan\.m2\repository\io\cucumber\tag-
expressions\6.1.0\tag-expressions-6.1.0.jar;C:\Users\pavan\.m2\repository\io\
cucumber\cucumber-expressions\17.1.0\cucumber-expressions-17.1.0.jar;C:\Users\
pavan\.m2\repository\io\cucumber\datatable\7.17.0\datatable-7.17.0.jar;C:\Users\
pavan\.m2\repository\io\cucumber\cucumber-plugin\7.17.0\cucumber-plugin-
7.17.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\docstring\7.17.0\docstring-
7.17.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\html-formatter\21.3.1\html-
formatter-21.3.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\junit-xml-
formatter\0.4.0\junit-xml-formatter-0.4.0.jar;C:\Users\pavan\.m2\repository\io\
cucumber\ci-environment\10.0.1\ci-environment-10.0.1.jar;C:\Users\pavan\.m2\
repository\junit\junit\4.13.2\junit-4.13.2.jar;C:\Users\pavan\.m2\repository\
org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\pavan\.m2\
repository\io\cucumber\cucumber-java\7.17.0\cucumber-java-7.17.0.jar;C:\Users\
pavan\.m2\repository\org\apache\logging\log4j\log4j-core\2.20.0\log4j-core-
2.20.0.jar;C:\Users\pavan\.m2\repository\org\apache\logging\log4j\log4j-api\
2.20.0\log4j-api-2.20.0.jar;C:\Users\pavan\.m2\repository\org\apache\poi\poi\
5.2.3\poi-5.2.3.jar;C:\Users\pavan\.m2\repository\commons-codec\commons-codec\
1.15\commons-codec-1.15.jar;C:\Users\pavan\.m2\repository\org\apache\commons\
commons-collections4\4.4\commons-collections4-4.4.jar;C:\Users\pavan\.m2\
repository\org\apache\commons\commons-math3\3.6.1\commons-math3-3.6.1.jar;C:\
Users\pavan\.m2\repository\com\zaxxer\SparseBitSet\1.2\SparseBitSet-1.2.jar;C:\
Users\pavan\.m2\repository\org\apache\poi\poi-ooxml\5.2.3\poi-ooxml-
5.2.3.jar;C:\Users\pavan\.m2\repository\org\apache\poi\poi-ooxml-lite\5.2.3\poi-
ooxml-lite-5.2.3.jar;C:\Users\pavan\.m2\repository\org\apache\xmlbeans\xmlbeans\
5.1.1\xmlbeans-5.1.1.jar;C:\Users\pavan\.m2\repository\org\apache\commons\
commons-compress\1.21\commons-compress-1.21.jar;C:\Users\pavan\.m2\repository\
com\github\virtuald\curvesapi\1.07\curvesapi-1.07.jar;C:\Users\pavan\.m2\
repository\commons-io\commons-io\2.11.0\commons-io-2.11.0.jar;C:\Users\
pavan\.m2\repository\org\apache\commons\commons-lang3\3.12.0\commons-lang3-
3.12.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\extentreports-
cucumber7-adapter\1.14.0\extentreports-cucumber7-adapter-1.14.0.jar;C:\Users\
pavan\.m2\repository\com\aventstack\extentreports\5.1.0\extentreports-
5.1.0.jar;C:\Users\pavan\.m2\repository\io\reactivex\rxjava3\rxjava\3.1.6\
rxjava-3.1.6.jar;C:\Users\pavan\.m2\repository\org\reactivestreams\reactive-
streams\1.0.4\reactive-streams-1.0.4.jar;C:\Users\pavan\.m2\repository\org\
freemarker\freemarker\2.3.32\freemarker-2.3.32.jar;C:\Users\pavan\.m2\
repository\org\projectlombok\lombok\1.18.26\lombok-1.18.26.jar;C:\Users\
pavan\.m2\repository\com\google\code\gson\gson\2.10.1\gson-2.10.1.jar;C:\Users\
pavan\.m2\repository\tech\grasshopper\extent-pdf-report\2.12.0\extent-pdf-
report-2.12.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\cucumber-pdf-
report\2.14.0\cucumber-pdf-report-2.14.0.jar;C:\Users\pavan\.m2\repository\org\
apache\pdfbox\pdfbox\2.0.26\pdfbox-2.0.26.jar;C:\Users\pavan\.m2\repository\org\
apache\pdfbox\fontbox\2.0.26\fontbox-2.0.26.jar;C:\Users\pavan\.m2\repository\
org\knowm\xchart\xchart\3.8.0\xchart-3.8.0.jar;C:\Users\pavan\.m2\repository\de\
erichseifert\vectorgraphics2d\VectorGraphics2D\0.13\VectorGraphics2D-
0.13.jar;C:\Users\pavan\.m2\repository\de\rototor\pdfbox\graphics2d\0.30\
graphics2d-0.30.jar;C:\Users\pavan\.m2\repository\com\madgag\animated-gif-lib\
1.4\animated-gif-lib-1.4.jar;C:\Users\pavan\.m2\repository\org\yaml\snakeyaml\
2.0\snakeyaml-2.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\table-
layout\1.5.1\table-layout-1.5.1.jar;C:\Users\pavan\.m2\repository\tech\
grasshopper\rest-assured-cucumber-pdf-report\1.5.0\rest-assured-cucumber-pdf-
report-1.5.0.jar;C:\Users\pavan\.m2\repository\org\jsoup\jsoup\1.15.3\jsoup-
1.15.3.jar;C:\Users\pavan\.m2\repository\com\aventstack\klov-reporter\5.1.0\
klov-reporter-5.1.0.jar;C:\Users\pavan\.m2\repository\org\mongodb\mongodb-
driver\3.6.4\mongodb-driver-3.6.4.jar;C:\Users\pavan\.m2\repository\org\mongodb\
mongodb-driver-core\3.6.4\mongodb-driver-core-3.6.4.jar;C:\Users\pavan\.m2\
repository\org\mongodb\bson\3.6.4\bson-3.6.4.jar;C:\Users\pavan\.m2\repository\
org\apache\httpcomponents\httpclient\4.5.13\httpclient-4.5.13.jar;C:\Users\
pavan\.m2\repository\org\apache\httpcomponents\httpcore\4.4.13\httpcore-
4.4.13.jar;C:\Users\pavan\.m2\repository\commons-logging\commons-logging\1.2\
commons-logging-1.2.jar;C:\Users\pavan\.m2\repository\org\apache\httpcomponents\
httpmime\4.5.13\httpmime-4.5.13.jar;C:\Users\pavan\.m2\repository\tech\
grasshopper\htmlextentreporter\1.1.0\htmlextentreporter-1.1.0.jar;C:\Users\
pavan\.m2\repository\tech\grasshopper\extent-excel-report\1.4.0\extent-excel-
report-1.4.0.jar;"/>

<property name="java.vm.vendor" value="Oracle Corporation"/>

<property name="sun.arch.data.model" value="64"/>

<property name="user.variant" value=""/>

<property name="java.vendor.url" value="https://java.oracle.com/"/>

<property name="user.timezone" value="Asia/Calcutta"/>

<property name="os.name" value="Windows 11"/>

<property name="java.vm.specification.version" value="17"/>

<property name="sun.java.launcher" value="SUN_STANDARD"/>

<property name="user.country" value="IN"/>

<property name="sun.boot.library.path" value="C:\Program Files\Java\jdk-17\


bin"/>

<property name="sun.java.command" value="C:\Users\pavan\AppData\Local\Temp\


surefire16011365113406594433\surefirebooter-20240515080440878_3.jar C:\Users\
pavan\AppData\Local\Temp\surefire16011365113406594433 2024-05-15T08-04-40_678-
jvmRun1 surefire-20240515080440878_1tmp surefire_0-20240515080440878_2tmp"/>

<property name="jdk.debug" value="release"/>

<property name="surefire.test.class.path" value="C:\Automation\myworkspaces\


seleniumwebdriver\opencart_cucumber\target\test-classes;C:\Automation\
myworkspaces\seleniumwebdriver\opencart_cucumber\target\classes;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-java\4.20.0\selenium-java-
4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-api\
4.20.0\selenium-api-4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-chrome-driver\4.20.0\selenium-chrome-driver-4.20.0.jar;C:\
Users\pavan\.m2\repository\com\google\auto\service\auto-service-annotations\
1.1.1\auto-service-annotations-1.1.1.jar;C:\Users\pavan\.m2\repository\org\
seleniumhq\selenium\selenium-chromium-driver\4.20.0\selenium-chromium-driver-
4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-json\
4.20.0\selenium-json-4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-manager\4.20.0\selenium-manager-4.20.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-devtools-v122\4.20.0\selenium-
devtools-v122-4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-devtools-v123\4.20.0\selenium-devtools-v123-4.20.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-devtools-v124\4.20.0\
selenium-devtools-v124-4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-devtools-v85\4.20.0\selenium-devtools-v85-4.20.0.jar;C:\Users\
pavan\.m2\repository\org\seleniumhq\selenium\selenium-edge-driver\4.20.0\
selenium-edge-driver-4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\
selenium\selenium-firefox-driver\4.20.0\selenium-firefox-driver-4.20.0.jar;C:\
Users\pavan\.m2\repository\org\seleniumhq\selenium\selenium-http\4.20.0\
selenium-http-4.20.0.jar;C:\Users\pavan\.m2\repository\dev\failsafe\failsafe\
3.3.2\failsafe-3.3.2.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-ie-driver\4.20.0\selenium-ie-driver-4.20.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-remote-driver\4.20.0\selenium-
remote-driver-4.20.0.jar;C:\Users\pavan\.m2\repository\com\google\guava\guava\
33.1.0-jre\guava-33.1.0-jre.jar;C:\Users\pavan\.m2\repository\com\google\guava\
failureaccess\1.0.2\failureaccess-1.0.2.jar;C:\Users\pavan\.m2\repository\com\
google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\
listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;C:\Users\
pavan\.m2\repository\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;C:\
Users\pavan\.m2\repository\org\checkerframework\checker-qual\3.42.0\checker-
qual-3.42.0.jar;C:\Users\pavan\.m2\repository\com\google\errorprone\
error_prone_annotations\2.26.1\error_prone_annotations-2.26.1.jar;C:\Users\
pavan\.m2\repository\com\google\j2objc\j2objc-annotations\3.0.0\j2objc-
annotations-3.0.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\semconv\
opentelemetry-semconv\1.25.0-alpha\opentelemetry-semconv-1.25.0-alpha.jar;C:\
Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-api\1.37.0\
opentelemetry-api-1.37.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\
opentelemetry-context\1.37.0\opentelemetry-context-1.37.0.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-exporter-logging\1.37.0\
opentelemetry-exporter-logging-1.37.0.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-sdk-common\1.37.0\opentelemetry-sdk-common-
1.37.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-
extension-autoconfigure-spi\1.37.0\opentelemetry-sdk-extension-autoconfigure-
spi-1.37.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-
extension-autoconfigure\1.37.0\opentelemetry-sdk-extension-autoconfigure-
1.37.0.jar;C:\Users\pavan\.m2\repository\io\opentelemetry\opentelemetry-api-
incubator\1.37.0-alpha\opentelemetry-api-incubator-1.37.0-alpha.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-trace\1.37.0\
opentelemetry-sdk-trace-1.37.0.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-sdk\1.37.0\opentelemetry-sdk-1.37.0.jar;C:\Users\
pavan\.m2\repository\io\opentelemetry\opentelemetry-sdk-metrics\1.37.0\
opentelemetry-sdk-metrics-1.37.0.jar;C:\Users\pavan\.m2\repository\io\
opentelemetry\opentelemetry-sdk-logs\1.37.0\opentelemetry-sdk-logs-
1.37.0.jar;C:\Users\pavan\.m2\repository\net\bytebuddy\byte-buddy\1.14.14\byte-
buddy-1.14.14.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-os\4.20.0\selenium-os-4.20.0.jar;C:\Users\pavan\.m2\repository\org\
apache\commons\commons-exec\1.4.0\commons-exec-1.4.0.jar;C:\Users\pavan\.m2\
repository\org\seleniumhq\selenium\selenium-safari-driver\4.20.0\selenium-
safari-driver-4.20.0.jar;C:\Users\pavan\.m2\repository\org\seleniumhq\selenium\
selenium-support\4.20.0\selenium-support-4.20.0.jar;C:\Users\pavan\.m2\
repository\io\cucumber\cucumber-junit\7.17.0\cucumber-junit-7.17.0.jar;C:\Users\
pavan\.m2\repository\org\apiguardian\apiguardian-api\1.1.2\apiguardian-api-
1.1.2.jar;C:\Users\pavan\.m2\repository\io\cucumber\cucumber-core\7.17.0\
cucumber-core-7.17.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\cucumber-
gherkin\7.17.0\cucumber-gherkin-7.17.0.jar;C:\Users\pavan\.m2\repository\io\
cucumber\cucumber-gherkin-messages\7.17.0\cucumber-gherkin-messages-
7.17.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\gherkin\28.0.0\gherkin-
28.0.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\messages\24.1.0\messages-
24.1.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\testng-xml-formatter\0.1.0\
testng-xml-formatter-0.1.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\query\
12.1.2\query-12.1.2.jar;C:\Users\pavan\.m2\repository\io\cucumber\tag-
expressions\6.1.0\tag-expressions-6.1.0.jar;C:\Users\pavan\.m2\repository\io\
cucumber\cucumber-expressions\17.1.0\cucumber-expressions-17.1.0.jar;C:\Users\
pavan\.m2\repository\io\cucumber\datatable\7.17.0\datatable-7.17.0.jar;C:\Users\
pavan\.m2\repository\io\cucumber\cucumber-plugin\7.17.0\cucumber-plugin-
7.17.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\docstring\7.17.0\docstring-
7.17.0.jar;C:\Users\pavan\.m2\repository\io\cucumber\html-formatter\21.3.1\html-
formatter-21.3.1.jar;C:\Users\pavan\.m2\repository\io\cucumber\junit-xml-
formatter\0.4.0\junit-xml-formatter-0.4.0.jar;C:\Users\pavan\.m2\repository\io\
cucumber\ci-environment\10.0.1\ci-environment-10.0.1.jar;C:\Users\pavan\.m2\
repository\junit\junit\4.13.2\junit-4.13.2.jar;C:\Users\pavan\.m2\repository\
org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\pavan\.m2\
repository\io\cucumber\cucumber-java\7.17.0\cucumber-java-7.17.0.jar;C:\Users\
pavan\.m2\repository\org\apache\logging\log4j\log4j-core\2.20.0\log4j-core-
2.20.0.jar;C:\Users\pavan\.m2\repository\org\apache\logging\log4j\log4j-api\
2.20.0\log4j-api-2.20.0.jar;C:\Users\pavan\.m2\repository\org\apache\poi\poi\
5.2.3\poi-5.2.3.jar;C:\Users\pavan\.m2\repository\commons-codec\commons-codec\
1.15\commons-codec-1.15.jar;C:\Users\pavan\.m2\repository\org\apache\commons\
commons-collections4\4.4\commons-collections4-4.4.jar;C:\Users\pavan\.m2\
repository\org\apache\commons\commons-math3\3.6.1\commons-math3-3.6.1.jar;C:\
Users\pavan\.m2\repository\com\zaxxer\SparseBitSet\1.2\SparseBitSet-1.2.jar;C:\
Users\pavan\.m2\repository\org\apache\poi\poi-ooxml\5.2.3\poi-ooxml-
5.2.3.jar;C:\Users\pavan\.m2\repository\org\apache\poi\poi-ooxml-lite\5.2.3\poi-
ooxml-lite-5.2.3.jar;C:\Users\pavan\.m2\repository\org\apache\xmlbeans\xmlbeans\
5.1.1\xmlbeans-5.1.1.jar;C:\Users\pavan\.m2\repository\org\apache\commons\
commons-compress\1.21\commons-compress-1.21.jar;C:\Users\pavan\.m2\repository\
com\github\virtuald\curvesapi\1.07\curvesapi-1.07.jar;C:\Users\pavan\.m2\
repository\commons-io\commons-io\2.11.0\commons-io-2.11.0.jar;C:\Users\
pavan\.m2\repository\org\apache\commons\commons-lang3\3.12.0\commons-lang3-
3.12.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\extentreports-
cucumber7-adapter\1.14.0\extentreports-cucumber7-adapter-1.14.0.jar;C:\Users\
pavan\.m2\repository\com\aventstack\extentreports\5.1.0\extentreports-
5.1.0.jar;C:\Users\pavan\.m2\repository\io\reactivex\rxjava3\rxjava\3.1.6\
rxjava-3.1.6.jar;C:\Users\pavan\.m2\repository\org\reactivestreams\reactive-
streams\1.0.4\reactive-streams-1.0.4.jar;C:\Users\pavan\.m2\repository\org\
freemarker\freemarker\2.3.32\freemarker-2.3.32.jar;C:\Users\pavan\.m2\
repository\org\projectlombok\lombok\1.18.26\lombok-1.18.26.jar;C:\Users\
pavan\.m2\repository\com\google\code\gson\gson\2.10.1\gson-2.10.1.jar;C:\Users\
pavan\.m2\repository\tech\grasshopper\extent-pdf-report\2.12.0\extent-pdf-
report-2.12.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\cucumber-pdf-
report\2.14.0\cucumber-pdf-report-2.14.0.jar;C:\Users\pavan\.m2\repository\org\
apache\pdfbox\pdfbox\2.0.26\pdfbox-2.0.26.jar;C:\Users\pavan\.m2\repository\org\
apache\pdfbox\fontbox\2.0.26\fontbox-2.0.26.jar;C:\Users\pavan\.m2\repository\
org\knowm\xchart\xchart\3.8.0\xchart-3.8.0.jar;C:\Users\pavan\.m2\repository\de\
erichseifert\vectorgraphics2d\VectorGraphics2D\0.13\VectorGraphics2D-
0.13.jar;C:\Users\pavan\.m2\repository\de\rototor\pdfbox\graphics2d\0.30\
graphics2d-0.30.jar;C:\Users\pavan\.m2\repository\com\madgag\animated-gif-lib\
1.4\animated-gif-lib-1.4.jar;C:\Users\pavan\.m2\repository\org\yaml\snakeyaml\
2.0\snakeyaml-2.0.jar;C:\Users\pavan\.m2\repository\tech\grasshopper\table-
layout\1.5.1\table-layout-1.5.1.jar;C:\Users\pavan\.m2\repository\tech\
grasshopper\rest-assured-cucumber-pdf-report\1.5.0\rest-assured-cucumber-pdf-
report-1.5.0.jar;C:\Users\pavan\.m2\repository\org\jsoup\jsoup\1.15.3\jsoup-
1.15.3.jar;C:\Users\pavan\.m2\repository\com\aventstack\klov-reporter\5.1.0\
klov-reporter-5.1.0.jar;C:\Users\pavan\.m2\repository\org\mongodb\mongodb-
driver\3.6.4\mongodb-driver-3.6.4.jar;C:\Users\pavan\.m2\repository\org\mongodb\
mongodb-driver-core\3.6.4\mongodb-driver-core-3.6.4.jar;C:\Users\pavan\.m2\
repository\org\mongodb\bson\3.6.4\bson-3.6.4.jar;C:\Users\pavan\.m2\repository\
org\apache\httpcomponents\httpclient\4.5.13\httpclient-4.5.13.jar;C:\Users\
pavan\.m2\repository\org\apache\httpcomponents\httpcore\4.4.13\httpcore-
4.4.13.jar;C:\Users\pavan\.m2\repository\commons-logging\commons-logging\1.2\
commons-logging-1.2.jar;C:\Users\pavan\.m2\repository\org\apache\httpcomponents\
httpmime\4.5.13\httpmime-4.5.13.jar;C:\Users\pavan\.m2\repository\tech\
grasshopper\htmlextentreporter\1.1.0\htmlextentreporter-1.1.0.jar;C:\Users\
pavan\.m2\repository\tech\grasshopper\extent-excel-report\1.4.0\extent-excel-
report-1.4.0.jar;"/>

<property name="sun.cpu.endian" value="little"/>

<property name="user.home" value="C:\Users\pavan"/>

<property name="user.language" value="en"/>

<property name="java.specification.vendor" value="Oracle Corporation"/>

<property name="java.version.date" value="2023-10-17"/>

<property name="java.home" value="C:\Program Files\Java\jdk-17"/>

<property name="file.separator" value="\"/>

<property name="basedir" value="C:\Automation\myworkspaces\seleniumwebdriver\


opencart_cucumber"/>

<property name="java.vm.compressedOopsMode" value="Zero based"/>

<property name="line.separator" value="&#10;"/>

<property name="java.vm.specification.vendor" value="Oracle Corporation"/>

<property name="java.specification.name" value="Java Platform API


Specification"/>

<property name="surefire.real.class.path" value="C:\Users\pavan\AppData\Local\


Temp\surefire16011365113406594433\surefirebooter-20240515080440878_3.jar"/>

<property name="user.script" value=""/>

<property name="sun.management.compiler" value="HotSpot 64-Bit Tiered


Compilers"/>

<property name="java.runtime.version" value="17.0.9+11-LTS-201"/>

<property name="user.name" value="pavan"/>

<property name="path.separator" value=";"/>

<property name="os.version" value="10.0"/>

<property name="java.runtime.name" value="Java(TM) SE Runtime Environment"/>

<property name="file.encoding" value="Cp1252"/>

<property name="java.vm.name" value="Java HotSpot(TM) 64-Bit Server VM"/>

<property name="localRepository" value="C:\Users\pavan\.m2\repository"/>

<property name="java.vendor.url.bug"
value="https://bugreport.java.com/bugreport/"/>
<property name="java.io.tmpdir" value="C:\Users\pavan\AppData\Local\Temp\"/>

<property name="java.version" value="17.0.9"/>

<property name="user.dir" value="C:\Automation\myworkspaces\seleniumwebdriver\


opencart_cucumber"/>

<property name="os.arch" value="amd64"/>

<property name="java.vm.specification.name" value="Java Virtual Machine


Specification"/>

<property name="sun.os.patch.level" value=""/>

<property name="native.encoding" value="Cp1252"/>

<property name="java.library.path" value="C:\Program Files\Java\jdk-17\bin;C:\


Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files (x86)\
VMware\VMware Player\bin\;C:\Program Files\Common Files\Oracle\Java\javapath;C:\
Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\
WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Java\jdk-
17\bin\;C:\Program Files\Docker\Docker\resources\bin;C:\Program Files\apache-
maven-3.9.6\bin;C:\Program Files\Git\cmd;C:\Users\pavan\AppData\Local\Microsoft\
WindowsApps;;."/>

<property name="java.vm.info" value="mixed mode, sharing"/>

<property name="java.vendor" value="Oracle Corporation"/>

<property name="java.vm.version" value="17.0.9+11-LTS-201"/>

<property name="sun.io.unicode.encoding" value="UnicodeLittle"/>

<property name="java.class.version" value="61.0"/>

</properties>

<testcase name="Successful Login with Valid Credentials" classname="Login with


Valid Credentials" time="6.821">

<system-out><![CDATA[

@sanity @regression

Scenario: Successful Login with Valid Credentials


# Features/Login.feature:4

Given the user navigates to login page


# stepDefinitions.LoginSteps.user_navigate_to_login_page()

When user enters email as "[email protected]" and password as "test@123"


#
stepDefinitions.LoginSteps.user_enters_email_as_and_password_as(java.lang.String
,java.lang.String)

And the user clicks on the Login button


# stepDefinitions.LoginSteps.click_on_login_button()
Then the user should be redirected to the MyAccount Page
# stepDefinitions.LoginSteps.user_navigates_to_my_account_page()

]]></system-out>

</testcase>

<testcase name="Successful Account Registration" classname="Account


Registration" time="6.883">

<system-out><![CDATA[

@regression

Scenario: Successful Account Registration #


Features/Registration.feature:4

Given the user navigates to Register Account page #


stepDefinitions.RegistrationSteps.user_navigates_to_register_account_page()

When the user enters the details into below fields #


stepDefinitions.RegistrationSteps.user_enters_the_details_into_below_fields(io.c
ucumber.datatable.DataTable)

| firstName | John |

| lastName | Kenedy |

| telephone | 1234567890 |

| password | test@123 |

And the user selects Privacy Policy #


stepDefinitions.RegistrationSteps.user_selects_privacy_policy()

And the user clicks on Continue button #


stepDefinitions.RegistrationSteps.user_clicks_on_continue_button()

Then the user account should get created successfully #


stepDefinitions.RegistrationSteps.user_account_should_get_created_successfully()

]]></system-out>

</testcase>

</testsuite>

<?xml version="1.0" encoding="UTF-8"?>

<Configuration status="WARN">

<Properties>

<Property name="basePath">./logs</Property>
</Properties>

<Appenders>

<Console name="Console" target="SYSTEM_OUT">

<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>

</Console>

<RollingFile name="File" fileName="${basePath}/automation.log" filePattern="$


{basePath}/automation-%d{yyyy-MM-dd}.log">

<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level - %msg%n"/>

<SizeBasedTriggeringPolicy size="50000" />

</RollingFile>

</Appenders>

<Loggers>

<Root level="All"> <!-- Here you can use multiple log levels All <
Trace < Debug < Info < Warn < Error < Fatal < Off -->

<AppenderRef ref="File"/> <!-- <AppenderRef ref="Console"/> -->

</Root>

</Loggers>

</Configuration>

<?xml version="1.0" encoding="UTF-8"?>

<testng-results ignored="0" total="0" passed="0" failed="0" skipped="0">

<reporter-output>

</reporter-output>

<suite started-at="2024-05-14T12:37:16 IST" name="My Suite" finished-at="2024-


05-14T12:37:16 IST" duration-ms="137">

<groups>

<group name="cucumber">

<method
signature="AbstractTestNGCucumberTests.runScenario(io.cucumber.testng.PickleWrap
per,io.cucumber.testng.FeatureWrapper)[pri:0,
instance:testRunner.TestRunner2@66982506]" name="runScenario"
class="io.cucumber.testng.AbstractTestNGCucumberTests"/>

</group> <!-- cucumber -->

</groups>

<test started-at="2024-05-14T12:37:16 IST" name="My Tests" finished-at="2024-05-


14T12:37:16 IST" duration-ms="137">

<class name="testRunner.TestRunner2">

<test-method is-config="true" signature="setUpClass(org.testng.ITestContext)


[pri:0, instance:testRunner.TestRunner2@66982506]" started-at="2024-05-
14T12:37:16 IST" name="setUpClass" finished-at="2024-05-14T12:37:16 IST"
duration-ms="112" status="PASS">

<params>

<param index="0">

<value>

<![CDATA[org.testng.TestRunner@63dd899]]>

</value>

</param>

</params>

<reporter-output>

</reporter-output>

</test-method> <!-- setUpClass -->

<test-method is-config="true" signature="tearDownClass()[pri:0,


instance:testRunner.TestRunner2@66982506]" started-at="2024-05-14T12:37:16 IST"
name="tearDownClass" finished-at="2024-05-14T12:37:16 IST" duration-ms="1"
status="PASS">

<reporter-output>

</reporter-output>

</test-method> <!-- tearDownClass -->

</class> <!-- testRunner.TestRunner2 -->

</test> <!-- My Tests -->

</suite> <!-- My Suite -->

</testng-results>
import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.interactions.Actions;

import io.github.bonigarcia.wdm.WebDriverManager;

public class DragAndDropGuru99 {

public static void main(String args[])

WebDriverManager.chromedriver().setup();

WebDriver driver =new ChromeDriver();

driver.get("http://demo.guru99.com/test/drag_drop.html");

//Element(BANK) which need to drag.

WebElement From1=driver.findElement(By.xpath("//*[@id='credit2']/a"));

//Element(DEBIT SIDE) on which need to drop.

WebElement To1=driver.findElement(By.xpath("//*[@id='bank']/li"));

//Element(SALES) which need to drag.

WebElement From2=driver.findElement(By.xpath("//*[@id='credit1']/a"));

//Element(CREDIT SIDE) on which need to drop.

WebElement To2=driver.findElement(By.xpath("//*[@id='loan']/li"));

//Element(500) which need to drag.


WebElement From3=driver.findElement(By.xpath("//*[@id='fourth']/a"));

//Element(DEBIT SIDE) on which need to drop.

WebElement To3=driver.findElement(By.xpath("//*[@id='amt7']/li"));

//Element(500) which need to drag.

WebElement From4=driver.findElement(By.xpath("//*[@id='fourth']/a"));

//Element(CREDIT SIDE) on which need to drop.

WebElement To4=driver.findElement(By.xpath("//*[@id='amt8']/li"));

//Using Action class for drag and drop.

Actions act=new Actions(driver);

//BANK drag and drop.

act.dragAndDrop(From1, To1).build().perform();

//SALES drag and drop.

act.dragAndDrop(From2, To2).build().perform();

//500 drag and drop debit side.

act.dragAndDrop(From3, To3).build().perform();

//500 drag and drop credit side.

act.dragAndDrop(From4, To4).build().perform();

//Verifying the Perfect! message.

if(driver.findElement(By.xpath("//
a[contains(text(),'Perfect')]")).isDisplayed())

{
System.out.println("Perfect Displayed !!!");

else

System.out.println("Perfect not Displayed !!!");

package Doubts;

import java.time.Duration;

import java.util.List;

import org.openqa.selenium.By;

import org.openqa.selenium.Keys;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.support.ui.Select;

import io.github.bonigarcia.wdm.WebDriverManager;

public class AssignmentDropDown {

public static void main(String[] args) throws InterruptedException {

//setup

WebDriverManager.chromedriver().setup();

WebDriver driver=new ChromeDriver();


driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

driver.get("https://phppot.com/demo/jquery-dependent-dropdown-list-countries-
and-states/");

driver.manage().window().maximize();

//setup over

//Handle drop downs without using 'select' class

//****************************************************

//select country

/*driver.findElement(By.id("country-list")).click(); //click on Select country


drop down

List<WebElement> country=driver.findElements(By.xpath("//select[@id='country-
list']//option")); // capture all countries

System.out.println(country.size()); // Count number of countries

for(WebElement opt:country) // Select country

if(opt.getText().equals("France"))

opt.click();

break;

Thread.sleep(3000);
//Now select state

driver.findElement(By.id("state-list")).click(); //click on Select state drop


down

List<WebElement> states=driver.findElements(By.xpath("//select[@id='state-
list']//option")); // capture all states

System.out.println(states.size()); // Count number of states

for(WebElement opt:states) // Select country

if(opt.getText().equals("Alsace"))

opt.click();

break;

*/

//Now , Handle drop downs using 'select' class

//****************************************************

//Select Country

WebElement country=driver.findElement(By.id("country-list"));

Select countrydrp=new Select(country);

List<WebElement> cnt=countrydrp.getOptions();

System.out.println(cnt.size());

countrydrp.selectByVisibleText("France");

Thread.sleep(3000);
//Select state

WebElement state=driver.findElement(By.id("state-list"));

Select statedrp=new Select(state);

cnt=statedrp.getOptions();

System.out.println(cnt.size());

statedrp.selectByVisibleText("Alsace");

import java.time.Duration;

import java.util.Arrays;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

public class BlazeDemo

public static void main(String[] args) {

WebDriver driver =new ChromeDriver();

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

//1

driver.get("https://blazedemo.com/");

driver.manage().window().maximize();
//2

driver.findElement(By.xpath("//select[@name='fromPort']")).sendKeys("Boston");

//3

driver.findElement(By.xpath("//select[@name='toPort']")).sendKeys("London");

//4

driver.findElement(By.xpath("//input[@value='Find Flights']")).click();

//5

int rows=driver.findElements(By.xpath("//table[@class='table']//tbody//
tr")).size();

System.out.println("number of rows in table:"+rows); //5

//6 - capture prices then store in array

String pricesArr[]=new String[rows]; //0-4

for(int r=1;r<=rows;r++)

String price=driver.findElement(By.xpath("//table[@class='table']//tbody//
tr["+r+"]/td[6]")).getText();

pricesArr[r-1]=price; //adding price into array

//7- Sort prices then find lower price value

for(String arrvalue:pricesArr)

System.out.println(arrvalue);

Arrays.sort(pricesArr); // this will able to sort strings. so no need to convert


to number
String lowestPrice=pricesArr[0];

System.out.println("Lower price:"+lowestPrice);

//8- Find record in table having lower price

for(int r=1;r<=rows;r++)

String price=driver.findElement(By.xpath("//table[@class='table']//tbody//
tr["+r+"]/td[6]")).getText();

if(price.equals(lowestPrice))

driver.findElement(By.xpath("//table[@class='table']//tbody//tr["+r+"]/td[1]//
input")).click();

break;

//9 - Fill the details then click on Purchase Flight button

driver.findElement(By.id("inputName")).sendKeys("John");

driver.findElement(By.id("address")).sendKeys("1403 American Beauty Ln");

driver.findElement(By.id("city")).sendKeys("Columbus");

driver.findElement(By.id("state")).sendKeys("OH");

driver.findElement(By.id("zipCode")).sendKeys("43240");

driver.findElement(By.id("creditCardNumber")).sendKeys("6789067345231267");

driver.findElement(By.id("creditCardYear")).clear();

driver.findElement(By.id("creditCardYear")).sendKeys("2023");

driver.findElement(By.id("nameOnCard")).sendKeys("John Canedy");

driver.findElement(By.xpath("//input[@value='Purchase Flight']")).click();
//10 - validation

String msg=driver.findElement(By.xpath("//h1")).getText();

if(msg.contains("Thank you for your purchase"))

System.out.println("Success !! Passed");

else

System.out.println("Failed");

driver.quit();

package Doubts;

import java.time.Duration;

import java.util.List;

import org.openqa.selenium.By;

import org.openqa.selenium.Keys;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.support.ui.Select;
import io.github.bonigarcia.wdm.WebDriverManager;

public class AssignmentDropDown {

public static void main(String[] args) throws InterruptedException {

//setup

WebDriverManager.chromedriver().setup();

WebDriver driver=new ChromeDriver();

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

driver.get("https://phppot.com/demo/jquery-dependent-dropdown-list-countries-
and-states/");

driver.manage().window().maximize();

//setup over

//Handle drop downs without using 'select' class

//****************************************************

//select country

/*driver.findElement(By.id("country-list")).click(); //click on Select country


drop down

List<WebElement> country=driver.findElements(By.xpath("//select[@id='country-
list']//option")); // capture all countries

System.out.println(country.size()); // Count number of countries

for(WebElement opt:country) // Select country


{

if(opt.getText().equals("France"))

opt.click();

break;

Thread.sleep(3000);

//Now select state

driver.findElement(By.id("state-list")).click(); //click on Select state drop


down

List<WebElement> states=driver.findElements(By.xpath("//select[@id='state-
list']//option")); // capture all states

System.out.println(states.size()); // Count number of states

for(WebElement opt:states) // Select country

if(opt.getText().equals("Alsace"))

opt.click();

break;

*/

//Now , Handle drop downs using 'select' class

//****************************************************
//Select Country

WebElement country=driver.findElement(By.id("country-list"));

Select countrydrp=new Select(country);

List<WebElement> cnt=countrydrp.getOptions();

System.out.println(cnt.size());

countrydrp.selectByVisibleText("France");

Thread.sleep(3000);

//Select state

WebElement state=driver.findElement(By.id("state-list"));

Select statedrp=new Select(state);

cnt=statedrp.getOptions();

System.out.println(cnt.size());

statedrp.selectByVisibleText("Alsace");

import java.time.Duration;

import java.util.Arrays;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;
public class BlazeDemo

public static void main(String[] args) {

WebDriver driver =new ChromeDriver();

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

//1

driver.get("https://blazedemo.com/");

driver.manage().window().maximize();

//2

driver.findElement(By.xpath("//select[@name='fromPort']")).sendKeys("Boston");

//3

driver.findElement(By.xpath("//select[@name='toPort']")).sendKeys("London");

//4

driver.findElement(By.xpath("//input[@value='Find Flights']")).click();

//5

int rows=driver.findElements(By.xpath("//table[@class='table']//tbody//
tr")).size();

System.out.println("number of rows in table:"+rows); //5

//6 - capture prices then store in array

String pricesArr[]=new String[rows]; //0-4

for(int r=1;r<=rows;r++)

String price=driver.findElement(By.xpath("//table[@class='table']//tbody//
tr["+r+"]/td[6]")).getText();

pricesArr[r-1]=price; //adding price into array

}
//7- Sort prices then find lower price value

for(String arrvalue:pricesArr)

System.out.println(arrvalue);

Arrays.sort(pricesArr); // this will able to sort strings. so no need to convert


to number

String lowestPrice=pricesArr[0];

System.out.println("Lower price:"+lowestPrice);

//8- Find record in table having lower price

for(int r=1;r<=rows;r++)

String price=driver.findElement(By.xpath("//table[@class='table']//tbody//
tr["+r+"]/td[6]")).getText();

if(price.equals(lowestPrice))

driver.findElement(By.xpath("//table[@class='table']//tbody//tr["+r+"]/td[1]//
input")).click();

break;

//9 - Fill the details then click on Purchase Flight button


driver.findElement(By.id("inputName")).sendKeys("John");

driver.findElement(By.id("address")).sendKeys("1403 American Beauty Ln");

driver.findElement(By.id("city")).sendKeys("Columbus");

driver.findElement(By.id("state")).sendKeys("OH");

driver.findElement(By.id("zipCode")).sendKeys("43240");

driver.findElement(By.id("creditCardNumber")).sendKeys("6789067345231267");

driver.findElement(By.id("creditCardYear")).clear();

driver.findElement(By.id("creditCardYear")).sendKeys("2023");

driver.findElement(By.id("nameOnCard")).sendKeys("John Canedy");

driver.findElement(By.xpath("//input[@value='Purchase Flight']")).click();

//10 - validation

String msg=driver.findElement(By.xpath("//h1")).getText();

if(msg.contains("Thank you for your purchase"))

System.out.println("Success !! Passed");

else

System.out.println("Failed");

driver.quit();

package day33;
import java.time.Duration;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

public class BootStrapTable_Orangehrm {

public static void main(String[] args) {

WebDriver driver=new ChromeDriver();

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

driver.get("https://opensource-demo.orangehrmlive.com/web/index.php");

driver.manage().window().maximize();

//Login steps

driver.findElement(By.name("username")).sendKeys("Admin");

driver.findElement(By.name("password")).sendKeys("admin123");

driver.findElement(By.xpath("//button[normalize-space()='Login']")).click();

//Click on Admin

driver.findElement(By.xpath("//a[contains(@href,'viewAdminModule')]")).click();

//Table rows

int rows=driver.findElements(By.xpath("//div[@class='oxd-table-body']/
div")).size();
//Reading data from the table

//Xpath to capture value

//div[@class='oxd-table-body']//div[@class="oxd-table-card"][1]//div//div[2]//
div

//Here div[@class="oxd-table-card"][1] is row number & div[2] is column number

System.out.println("Username"+"\t"+"User Role"+"\t"+"Employee Name"+"\


t"+"Status");

System.out.println("---------------------------------------------------------");

for(int r=1;r<=rows;r++)

String username=driver.findElement(By.xpath("//div[@class='oxd-table-body']//
div[@class='oxd-table-card']["+r+"]//div//div[2]//div")).getText();

String userole=driver.findElement(By.xpath("//div[@class='oxd-table-body']//
div[@class='oxd-table-card']["+r+"]//div//div[3]//div")).getText();

String employeename=driver.findElement(By.xpath("//div[@class='oxd-table-
body']//div[@class='oxd-table-card']["+r+"]//div//div[4]//div")).getText();

String status=driver.findElement(By.xpath("//div[@class='oxd-table-body']//
div[@class='oxd-table-card']["+r+"]//div//div[5]//div")).getText();

System.out.println(username+"\t"+userole+"\t"+employeename+"\t"+status);

import java.time.Duration;

import java.util.Arrays;
import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;

public class Dynamic_Pagianation_practice_3 {

// Gainers - Daily, Weekly, Monthly

// Groups - Group A, Group B, Group M, Group T, Group MT, Group Z

public static void changePercentBasedOnTime(WebDriver driver, int gainers, int


groups) {

for (int i = 1; i <= gainers; i++) {

WebElement gainersByTime = driver.findElement(By.xpath("//h2[normalize-


space()='Gainers']/following-sibling::div["+i+"]"));

System.out.println("********* Based on "+gainersByTime.getText()+"


***********");

gainersByTime.click(); // Daily/Weekly/Monthly

for (int g = 1; g <= groups; g++) {

WebElement activeGroup =
driver.findElement(By.xpath("//div[@id='leftcontainer']//div[4]//a["+g+"]"));

System.out.println("<<<<<Name of The Group is "+activeGroup.getText()+ ">>>>>");

activeGroup.click();

int indGroupRowNum =
driver.findElements(By.xpath("//table[@class='dataTable']//tbody//tr")).size();
String eachChange[] = new String[indGroupRowNum];

for (int r = 1; r <= indGroupRowNum; r++) {

String Change =
driver.findElement(By.xpath("//table[@class='dataTable']//tbody//tr[" + r +
"]//td[5]"))

.getText();

eachChange[r - 1] = Change;

Arrays.sort(eachChange);

String lowestChange = eachChange[0];

System.out.println("The lowest Change percent :" + lowestChange);

for (int r = 1; r <= indGroupRowNum; r++) {

String Change =
driver.findElement(By.xpath("//table[@class='dataTable']//tbody//tr[" + r +
"]//td[5]")).getText();

if (Change.equals(lowestChange)) {

String company =
driver.findElement(By.xpath("//table[@class='dataTable']//tbody//tr[" + r +
"]//td[1]")).getText();
System.out.println("Company name And Percentage Change :" + company + "\t" +
lowestChange);

// Gainers - Daily, Weekly, Monthly

// Groups - All

public static void allData(WebDriver driver, int gainers) {

for (int i = 1; i <= gainers; i++) // Daily Weekly, Monthly

WebElement gainersByTime = driver.findElement(By.xpath("//h2[normalize-


space()='Gainers']/following-sibling::div["+i+"]"));

System.out.println("********* Based on "+gainersByTime.getText()+"


***********");

gainersByTime.click(); // Daily/Weekly/Monthly

WebElement group =
driver.findElement(By.xpath("//strong[contains(text(),'All')]"));

System.out.println("<<<<<Name of The Group is "+group.getText()+ ">>>>>");

group.click(); //All
int indGroupRowNum =
driver.findElements(By.xpath("//table[@class='dataTable']//tbody//tr")).size();

System.out.println("Number of rows are :" + indGroupRowNum);

//Limited to 5 rows since data is very huge.

for (int r = 1; r <= 5; r++) //for (int r = 1; r <= indGroupRowNum; r++)

String company =
driver.findElement(By.xpath("//table[@class='dataTable']//tbody//tr["+ r +
"]//td[1]")).getText();

String Change =
driver.findElement(By.xpath("//table[@class='dataTable']//tbody//tr[" + r
+"]//td[5]")).getText();

System.out.println(company + "\t" + Change);

System.out.println();

public static void main(String[] args) throws InterruptedException {

WebDriver driver = new ChromeDriver();

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
driver.get("https://money.rediff.com/gainers/bse/daily/groupall");

driver.manage().window().maximize();

// Type of Gainers (Daily, Weekly, Monthly)

int gainers =
driver.findElements(By.xpath("//h2[normalize-space()='Gainers']/following-
sibling::div")).size();

System.out.println("Gainer types :" + gainers); //3

// All group Rows

int allGroupRows =
driver.findElements(By.xpath("//table[@class='dataTable']//tbody/tr")).size();

System.out.println("number of rows availble in All group are :" + allGroupRows);

// Number of Columns

int columns =
driver.findElements(By.xpath("//table[@class='dataTable']//thead//th")).size();

System.out.println("Number of available columns are :" + columns); //5

// Number of Groups (Pages)

int groups = driver.findElements(By.xpath("//div[@id='leftcontainer']//div[4]//


a")).size();

System.out.println("Number of groups(Pages) are :" + groups); //6

//Test case 1:

//1) Read All data on Daily, Weekly and Monthly wise (From Gainers)

//2) Print Company, Group and %change.


allData(driver, gainers); //user defined method

//Test case 2:

// 1) Read data from all the groups on Daily, Weekly and Monthly wise (From
Gainers)

// 2) In each group print company name which is having lowest %Change

changePercentBasedOnTime(driver, gainers, groups); ///user defined method

package day33;

import java.time.Duration;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;

public class DynamicTable {

public static void main(String[] args) {

WebDriver driver=new ChromeDriver();

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
driver.get(" https://practice.expandtesting.com/dynamic-table");

driver.manage().window().maximize();

int rows=driver.findElements(By.xpath("//table[@class='table
table-striped']//tbody//tr")).size();

//1) For Chrome process get value of CPU load.

String cpuload=null;

for(int r=1;r<=rows;r++)

WebElement name=driver.findElement(By.xpath("//table[@class='table table-


striped']//tbody//tr["+r+"]/td[1]"));

if(name.getText().equals("Chrome"))

cpuload=name.findElement(By.xpath("following-
sibling::*[contains(text(),'%')]")).getText();

break;

//2) Compare CPU load with value in the yellow label.

String value=driver.findElement(By.xpath("//p[@id='chrome-cpu']")).getText();//
capture value from yellow label

if(value.contains(cpuload))
{

System.out.println("CPU load is equal...");

else

System.out.println("CPU load is NOT equal..");

package doubts;

import java.time.Duration;

import java.util.List;

import org.openqa.selenium.By;

import org.openqa.selenium.JavascriptExecutor;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.support.ui.Select;

/* Test Case

1) Open https://dummy-tickets.com/buyticket

2) Click on Both

3) Select round trip

4) Under Flight, select From, To, Departure, Return

5) Under Hotel , select city, checkin, checkout


6) Click on submit

*/

public class Buyticket

//UDF for selecting future date

static void selectFutureDate(WebDriver driver,String year,String month,String


date)

//select year

while(true)

String currentYear=driver.findElement(By.xpath("//span[@class='ui-datepicker-
year']")).getText();//actual year

if(currentYear.equals(year))

break;

driver.findElement(By.xpath("//span[@class='ui-icon ui-icon-circle-triangle-
e']")).click();// Next

//select month

WebElement month_drop=driver.findElement(By.xpath("//select[@aria-label='Select
month']"));

Select monthdrp=new Select(month_drop);

monthdrp.selectByVisibleText(month);

//date selection
List<WebElement> allDates=driver.findElements(By.xpath("//table[@class='ui-
datepicker-calendar']//tr//td//a"));

for(WebElement dt:allDates)

if(dt.getText().equals(date))

dt.click();

break;

////UDF for selecting previous date

static void selectPreviousDate(WebDriver driver,String year,String month,String


date)

//select year

while(true)

String currentYear=driver.findElement(By.xpath("//span[@class='ui-datepicker-
year']")).getText();//actual year

if(currentYear.equals(year))

break;

driver.findElement(By.xpath("//span[@class='ui-icon ui-icon-circle-triangle-
w']")).click();//Previous

//select month
WebElement month_drop=driver.findElement(By.xpath("//select[@aria-label='Select
month']"));

Select monthdrp=new Select(month_drop);

monthdrp.selectByVisibleText(month);

//date selection

List<WebElement> allDates=driver.findElements(By.xpath("//table[@class='ui-
datepicker-calendar']//tr//td//a"));

for(WebElement dt:allDates)

if(dt.getText().equals(date))

dt.click();

break;

public static void main(String[] args) throws Exception

WebDriver driver = new ChromeDriver();

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

driver.get("https://dummy-tickets.com/buyticket");

driver.manage().window().maximize();

driver.findElement(By.xpath("//a[normalize-space()='Both']")).click();

driver.findElement(By.xpath("//input[@value='roundtripfh']")).click();

//from
driver.findElement(By.xpath("(//input[@name='source[]'])
[5]")).sendKeys("Bhubaneswar ");

Thread.sleep(3000);

List<WebElement> from=driver.findElements(By.xpath("//div[@class='suggestion-
block']//p"));

for(WebElement fm:from)

if(fm.getText().contains("Bhubaneswar Airport"))

fm.click();

break;

//to

driver.findElement(By.xpath("(//input[@name='destination[]'])
[5]")).sendKeys("Bangalore ");

Thread.sleep(3000);

List<WebElement> to=driver.findElements(By.xpath("(//ul[@class='suggestions-
list'])//p"));

for(WebElement t:to)

if(t.getText().contains("HAL Bangalore International Airport"))

t.click();

break;

//expected data - departure


String year="2023";

String month="Jul";

String date="10";

//open date pickers

driver.findElement(By.xpath("(//input[@placeholder='Departure Date'])
[5]")).click();

selectPreviousDate(driver,year,month,date); //departure

driver.findElement(By.xpath("(//input[@placeholder='Return Date'])
[2]")).click();

selectFutureDate(driver,"2026","Feb","15"); //return

//city

driver.findElement(By.xpath("(//input[@name='city[]'])
[3]")).sendKeys("Bangalore");

Thread.sleep(3000);

List<WebElement> citys=driver.findElements(By.xpath("//ul[@class='suggestions-
cities-list']//li//p"));

for(WebElement ct:citys)

if(ct.getText().equals("Bangalore"))

ct.click();

break;

//check-in
driver.findElement(By.xpath("(//input[@placeholder='Check In Date'])
[3]")).click();

selectPreviousDate(driver,"2024","Aug","10"); //departure

//check-out

driver.findElement(By.xpath("(//input[@placeholder='Check Out Date'])


[3]")).click();

selectFutureDate(driver,"2025","Jul","1");

Thread.sleep(2000);

//submit

driver.findElement(By.xpath("//form[@id='both_round']//
input[@value='Submit']")).click();

Thread.sleep(3000);

//validation

String
text=driver.findElement(By.xpath("//div[@class='before_title']")).getText();

if(text.equals("Booking Details"))

System.out.println("Test Passed....");

else

System.out.println("Test Failed....");

driver.quit();

You might also like