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("Test2.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=" "/>
<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.cucumber.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=" "/>
<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 "String.equalsIgnoreCase(String)" because the return value of
"java.util.Properties.getProperty(String)" 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 "org.openqa.selenium.WebDriver.quit()" because "this.driver" 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=" "/>
<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.cucumber.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=" "/>
<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.cucumber.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=" "/>
<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 "String.equalsIgnoreCase(String)" because the return value of
"java.util.Properties.getProperty(String)" 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 "org.openqa.selenium.WebDriver.quit()" because "this.driver" 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=" "/>
<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.cucumber.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.ExtentCucumberAd
apter:",
"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:1105)
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:396)
at org.openqa.selenium.remote.http.AddSeleniumUserAgent.lambda$apply$0(AddSeleniumUserAgent.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(DriverCommandExecutor.java:216)
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.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.maximize(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:379)
at org.openqa.selenium.remote.http.AddSeleniumUserAgent.lambda$apply$0(AddSeleniumUserAgent.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(DriverCommandExecutor.java:216)
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.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.maximize(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(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.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.java:151)
at io.cucumber.core.runtime.CucumberExecutionContext.lambda$runTestCase$5(CucumberExecutionContext.java:136)
at io.cucumber.core.runtime.RethrowingThrowableCollector.executeAndThrow(RethrowingThrowableCollector.java:23)
at io.cucumber.core.runtime.CucumberExecutionContext.runTestCase(CucumberExecutionContext.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.java: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=" "/>
<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:1105)
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:1105)
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.cucumber.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=" "/>
<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 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}" 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:396)
at org.openqa.selenium.remote.http.AddSeleniumUserAgent.lambda$apply$0(AddSeleniumUserAgent.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(DriverCommandExecutor.java:216)
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.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.maximize(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:379)
at org.openqa.selenium.remote.http.AddSeleniumUserAgent.lambda$apply$0(AddSeleniumUserAgent.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(DriverCommandExecutor.java:216)
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.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.maximize(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(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.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.java:151)
at io.cucumber.core.runtime.CucumberExecutionContext.lambda$runTestCase$5(CucumberExecutionContext.java:136)
at io.cucumber.core.runtime.RethrowingThrowableCollector.executeAndThrow(RethrowingThrowableCollector.java:23)
at io.cucumber.core.runtime.CucumberExecutionContext.runTestCase(CucumberExecutionContext.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.java: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:396)
at org.openqa.selenium.remote.http.AddSeleniumUserAgent.lambda$apply$0(AddSeleniumUserAgent.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(DriverCommandExecutor.java:216)
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.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.maximize(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:379)
at org.openqa.selenium.remote.http.AddSeleniumUserAgent.lambda$apply$0(AddSeleniumUserAgent.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(DriverCommandExecutor.java:216)
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.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.maximize(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(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.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.java:151)
at io.cucumber.core.runtime.CucumberExecutionContext.lambda$runTestCase$5(CucumberExecutionContext.java:136)
at io.cucumber.core.runtime.RethrowingThrowableCollector.executeAndThrow(RethrowingThrowableCollector.java:23)
at io.cucumber.core.runtime.CucumberExecutionContext.runTestCase(CucumberExecutionContext.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.java: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=" "/>
<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.cucumber.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.PickleWrapper,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();