genlitex 1 tháng trước cách đây
mục cha
commit
5789fe6ba6
2 tập tin đã thay đổi với 1855 bổ sung0 xóa
  1. 14 0
      automation_code/PrintCurrentTime.java
  2. 1841 0
      automation_code/RT_OppCreatePage.java

+ 14 - 0
automation_code/PrintCurrentTime.java

@@ -0,0 +1,14 @@
+package genlitex_demo.automation_code;
+
+
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+
+public class PrintCurrentTime {
+    public static void main(String[] args) {
+        LocalDateTime now = LocalDateTime.now();
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        String formattedDateTime = now.format(formatter);
+        System.out.println("Current Time: " + formattedDateTime);
+    }
+}

+ 1841 - 0
automation_code/RT_OppCreatePage.java

@@ -0,0 +1,1841 @@
+package genlitex_demo.automation_code;
+
+import java.io.File;
+import java.io.IOException;
+import java.time.Duration;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.poi.EncryptedDocumentException;
+import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
+import org.openqa.selenium.By;
+import org.openqa.selenium.JavascriptExecutor;
+import org.openqa.selenium.Keys;
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.WindowType;
+import org.openqa.selenium.interactions.Actions;
+import org.openqa.selenium.support.FindBy;
+import org.openqa.selenium.support.ui.ExpectedConditions;
+import org.openqa.selenium.support.ui.WebDriverWait;
+import org.testng.annotations.Test;
+import org.testng.asserts.SoftAssert;
+
+import com.Utility.MethodFactory;
+import com.Utility.ReadExcel;
+import com.Utility.TakeScreenshot;
+import com.Utility.TestNGCreation;
+import com.Utility.UtilMethods;
+import com.relevantcodes.extentreports.ExtentTest;
+import com.relevantcodes.extentreports.LogStatus;
+
+public class RT_OppCreatePage extends OpportunityElementFactory {
+	static String data;
+	static File file;
+	static ReadExcel excel;
+
+	public static ReadExcel excel(String excelName) {
+		file = new File(System.getProperty("user.dir") + "/ExcelFiles/" + excelName + ".xlsx");
+		excel = new ReadExcel(file);
+		return excel;
+	}
+	public static WebDriver fillFieldsOnOppCreatePage(WebDriver driver, String path, ExtentTest logger, String oppName,
+			String crID, String closeDt, String sellingCountryval, String localCurrencyVal,
+			String IndustrySubSegmentValue, String excelName, String sheetName, int row) throws InterruptedException {
+ 
+		excel(excelName);
+		String opportunityName;
+		String accountID;
+		String closeDate;
+		String sellingCountry;
+		String localCurrency;
+		String IndustrySubSegment;
+ 
+		opportunityName = excel.getCellData(sheetName, oppName, row);
+		accountID = excel.getCellData(sheetName, crID, row);
+		closeDate = excel.getCellData(sheetName, closeDt, row);
+ 
+		logger.log(LogStatus.INFO, "closeDate from excel is:" + closeDate);
+ 
+		sellingCountry = excel.getCellData(sheetName, sellingCountryval, row);
+		localCurrency = excel.getCellData(sheetName, localCurrencyVal, row);
+		IndustrySubSegment = excel.getCellData(sheetName, IndustrySubSegmentValue, row);
+		Thread.sleep(4000);
+ 
+		// Setting Value for Opportunity Name field
+		UtilMethods.waitTillElementIsVisible(logger, driver, opportunityNameOnCreateOppPage);
+		UtilMethods.setText(logger, opportunityNameOnCreateOppPage, opportunityName);
+		// Setting Value for Customer relationship field
+		Thread.sleep(4000);
+		UtilMethods.waitTillElementIsVisible(logger, driver, customerRelationshipOnCreateOppPage);
+		Thread.sleep(4000);
+		UtilMethods.setText(logger, customerRelationshipOnCreateOppPage, accountID);
+		Thread.sleep(4000);
+		UtilMethods.clickEnter(logger, customerRelationshipOnCreateOppPage, "Customer Relationship");
+		Thread.sleep(4000);
+//		UtilMethods.clickEnter(logger, customerRelationshipOnCreateOppPage, "Customer Relationship");
+//		Thread.sleep(3000);
+		UtilMethods.waitTillElementIsVisible(logger, driver, RT_WinLossSurveyFindingsPage.cRSelection);
+		Thread.sleep(3000);
+		UtilMethods.clickOn(logger, cRSelection, "CR");
+		Thread.sleep(3000);
+		// Setting Value for Close Date
+		UtilMethods.waitTillElementIsVisible(logger, driver, closeDateOnCreateOppPage);
+		Thread.sleep(3000);
+		UtilMethods.setText(logger, closeDateOnCreateOppPage, closeDate);
+		Thread.sleep(5000);
+		JavascriptExecutor executor = (JavascriptExecutor) driver;
+		WebElement element1 = driver.findElement(
+				By.xpath("//label[text()='Selling Country/Location']/ancestor::lightning-combobox//input | //label[text()='Selling Country/Location']/ancestor::lightning-combobox//button[@name='SellingCountry__c']"));
+		Thread.sleep(2000);
+		UtilMethods.waitTillElementIsVisible(logger, driver, element1);
+		UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, element1, "Selling Country");
+		WebElement selectionElement = driver.findElement(By
+				.xpath("//label[text()='Selling Country/Location']//ancestor::div[1]//div[@role='listbox']//span/span[text()='"
+						+ sellingCountry + "']"));
+		executor.executeScript("arguments[0].click();", selectionElement);
+		// local currency
+		WebElement element2 = driver
+				.findElement(By.xpath("//label[text()='Local Currency']/ancestor::lightning-combobox//button"));
+		UtilMethods.waitTillElementIsVisible(logger, driver, element2);
+		UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, element2, "Local Currency");
+		WebElement selectionElement1 = driver.findElement(
+				By.xpath("//label[text()='Local Currency']//ancestor::div[1]//div[@role='listbox']//span/span[text()='"
+						+ localCurrency + "']"));
+		executor.executeScript("arguments[0].click();", selectionElement1);
+		UtilMethods.waitTillElementIsVisible(logger, driver, industrySubSegmentOnCreateOppPage);
+		UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, industrySubSegmentOnCreateOppPage,
+				"ISS");
+		Thread.sleep(2000);
+ 
+		if (IndustrySubSegment.equals("H&PS HEALTH-COMM'L PAYER")
+				|| IndustrySubSegment.equals("H&PS HEALTH-COMM'L PROVIDER")) {
+ 
+			String IndustrySubSegmentData[] = IndustrySubSegment.split("'");
+			UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger,
+					driver.findElement(By
+							.xpath("//span[text()='Industry Sub Segment']/../../following-sibling::div//div[contains(text(),'"
+									+ IndustrySubSegmentData[0] + "') and contains(text(),'" + IndustrySubSegmentData[1]
+									+ "')]")),
+					"industry sub segment");
+ 
+		} else {
+ 
+			UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger,
+					driver.findElement(
+							By.xpath("//span[text()='Industry Sub Segment']/../../following-sibling::div//div[text()='"
+									+ IndustrySubSegment + "']")),
+					"industry sub segment");
+		}
+		return driver;
+	}
+
+	public static WebDriver addFinancials(WebDriver driver, String path, ExtentTest logger, String SG, String SSG,
+			String SR, String SSGOff, String excelName, String sheetName, int row) throws InterruptedException {
+		Thread.sleep(5000);
+		excel(excelName);
+
+		if (clearSSG.size() > 0 || deleteSSG.size() > 0) {
+			//UtilMethods.clickOn(logger, ssgAddBtn, "ssgAdd Button");
+			MethodFactory.clickTheRespectiveButtonByJavaScriptExecutor(driver, path, logger,
+					ssgAddBtn, "SSG Add Button");	
+			
+			
+		}
+		String serviceGroup = excel.getCellData(sheetName, SG, row);
+		String subServiceGroup = excel.getCellData(sheetName, SSG, row);
+		String serviceRevenue = excel.getCellData(sheetName, SR, row);
+		String ssgOff = excel.getCellData(sheetName, SSGOff, row);
+		String[] ssgOfflist = ssgOff.split(";");
+
+		int ssgListSize = ssgOfflist.length;
+		logger.log(LogStatus.INFO, "ssgListSize " + ssgListSize);
+		row = row - 1;
+		// Setting Value for Service Group
+		JavascriptExecutor executor = (JavascriptExecutor) driver;
+		WebElement element1 = driver.findElement(
+				By.xpath("(//label[text()='Service Group']/ancestor::lightning-combobox//input)[" + row + "] | (//label[text()='Service Group']/ancestor::lightning-combobox//button)[" + row + "]"));
+		Thread.sleep(2000);
+		UtilMethods.waitTillElementIsVisible(logger, driver, element1);
+		UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, element1, "SG");
+		WebElement selectionElement1 = driver.findElement(
+				By.xpath("(//label[text()='Service Group']//ancestor::div[1]//div[@role='listbox']//span/span[text()='"
+						+ serviceGroup + "'])[" + row + "]"));
+		executor.executeScript("arguments[0].click();", selectionElement1);
+
+		Thread.sleep(5000);
+		// Setting Value for SSG
+		WebElement element2 = driver.findElement(
+				By.xpath("(//label[text()='Sub Service Group']/ancestor::lightning-combobox//input)[" + row + "] | (//label[text()='Sub Service Group']/ancestor::lightning-combobox//button)[" + row + "]"));
+		Thread.sleep(2000);
+		UtilMethods.clickOn(logger, element2, "SSG inbox");
+		UtilMethods.waitTillElementIsVisible(logger, driver, element1);
+		UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, element1, "SSG");
+		List<WebElement> selectionElement2 = driver.findElements(By
+				.xpath("//label[text()='Sub Service Group']//ancestor::div[1]//div[@role='listbox']//span/span[text()='"
+						+ subServiceGroup + "']"));
+		executor.executeScript("arguments[0].click();", selectionElement2.get(selectionElement2.size()-1));
+
+		Thread.sleep(5000);
+		// Setting Value for Services Revenue
+		WebElement element3 = driver.findElement(By
+				.xpath("(//label[text()='Services Revenue']//ancestor::div[@class='field-height set-background']//input)["
+						+ row + "] | (//label[text()='Services Revenue']//ancestor::div[@class='field-height set-background']//button)["
+						+ row + "]"));
+		UtilMethods.waitTillElementIsVisible(logger, driver, srTextBox);
+		UtilMethods.setText(logger, element3, serviceRevenue);
+
+		Thread.sleep(5000);
+		// Setting Value for SSG Offerings
+		if(!ssgOfflist[0].equals("NA")) {
+			for (int i = 0; i < ssgListSize; i++) {
+				logger.log(LogStatus.INFO, "ssgOfflist " + ssgOfflist[i]);
+				logger.log(LogStatus.INFO, "row " + row);
+				Thread.sleep(5000);
+				String SSGOff1 = ssgOfflist[i];
+
+				WebElement element4 = driver.findElement(By
+						.xpath("(//span[text()='SSG Offerings']//ancestor::div[@class='slds slds-form-element large']//input)["
+								+ row + "] | (//span[text()='SSG Offerings']//ancestor::div[@class='slds slds-form-element large']//button)["
+								+ row + "]"));
+				Thread.sleep(5000);
+				UtilMethods.clickOn(logger, element4, "element4");		
+				UtilMethods.setText(logger, element4, SSGOff1);		
+				logger.log(LogStatus.INFO, "row " + row);
+				Thread.sleep(5000);
+				UtilMethods.clickEnter(logger, element4, "ssgTextBox");
+				UtilMethods.waitTillElementIsVisible(logger, driver, element4);
+				Thread.sleep(4000);
+			}
+		}
+		return driver;
+	}
+
+	public static WebDriver updateSSGOfferings(WebDriver driver, String path, ExtentTest logger, String SSGOff,
+			String excelName, String sheetName, int row) throws InterruptedException {
+
+		Thread.sleep(5000);
+		excel(excelName);
+		String ssgOff = excel.getCellData(sheetName, SSGOff, row);
+		logger.log(LogStatus.INFO, "ssgOfflist " + ssgOff);
+		String[] ssgOfflist = ssgOff.split(";");
+
+		int ssgListSize = ssgOfflist.length;
+		logger.log(LogStatus.INFO, "ssgListSize " + ssgListSize);
+		row = row - 1;
+
+		// Setting Value for SSG Offerings
+		for (int i = 0; i < ssgListSize; i++) {
+			logger.log(LogStatus.INFO, "ssgOfflist " + ssgOfflist[i]);
+			logger.log(LogStatus.INFO, "row " + row);
+
+			String SSGOff1 = ssgOfflist[i];
+
+			WebElement element4 = driver.findElement(By
+					.xpath("(//span[text()='SSG Offerings']//ancestor::div[@class='slds slds-form-element large']//input)["
+							+ row + "]"));
+			Thread.sleep(5000);
+			//UtilMethods.clickOn(logger, element4, "element4");
+			UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, element4, "element4");
+			UtilMethods.setText(logger, element4, SSGOff1);
+			logger.log(LogStatus.INFO, "row " + row);
+			Thread.sleep(5000);
+			UtilMethods.clickEnter(logger, element4, "ssgTextBox");
+			Thread.sleep(4000);
+		}
+		return driver;
+	}
+
+	public static WebDriver navigateToOppCreatePage(WebDriver driver, String path, ExtentTest logger)
+			throws InterruptedException {
+
+		Thread.sleep(4000);
+		MethodFactory.clickTheRespectiveButtonByJavaScriptExecutor(driver, path, logger, Opptab, "Opp Tab" );
+		Thread.sleep(3000);
+		UtilMethods.waitTillElementIsVisible(logger, driver, newButton);
+		Thread.sleep(3000);
+		UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver,logger, newButton, "New Button" );
+
+		
+		Thread.sleep(5000);
+		return driver;
+
+	}
+
+	public static WebDriver deleteTheSSG(WebDriver driver, String path, ExtentTest logger, String excelName,
+			String sheetName, int row) throws InterruptedException {
+
+		List<WebElement> delSSG = driver
+				.findElements(By.xpath("//button[@title='Delete SSG']//following::button[@name='3']"));
+
+		if (delSSG.size() == 1) {
+			UtilMethods.clickOn(logger, delSSG.get(0), "deleteSSGbtn");
+			logger.log(LogStatus.PASS, "Last Record Deleted");
+			S_ASSERT.assertTrue(true);
+		} else {
+			TS = TakeScreenshot.CaptureScreen(driver, "deleteTheSSG");
+			logger.log(LogStatus.FAIL, "Last Record is not deleted" + logger.addScreenCapture(TS));
+			S_ASSERT.assertTrue(false);
+		}
+
+		Thread.sleep(2000);
+		UtilMethods.clickOn(logger, oKButtonSubmitForApproval, "oKButtonSubmitForApproval");
+		Thread.sleep(2000);
+
+		return driver;
+	}
+
+	public static WebDriver updateTheRevenue(WebDriver driver, String path, ExtentTest logger, String SR,
+			String excelName, String sheetName, int row) throws InterruptedException {
+
+		WebElement errorBox = driver.findElement(By.xpath(
+				"//div[text()='ERROR: Invalid Revenue']//ancestor::div[@class='field-height set-background']//input"));
+
+		String serviceRevenue = excel.getCellData(sheetName, SR, row);
+
+		UtilMethods.clickOn(logger, errorBox, "errorBox");
+		UtilMethods.setText(logger, errorBox, serviceRevenue);
+
+		return driver;
+	}
+
+	public static WebDriver updateTheSG(WebDriver driver, String path, ExtentTest logger, String SG, String excelName,
+			String sheetName, int row) throws InterruptedException {
+
+		String serviceGrp = excel.getCellData(sheetName, SG, row);
+
+		// Setting Value for Service Group
+		JavascriptExecutor executor = (JavascriptExecutor) driver;
+		Thread.sleep(2000);
+		WebElement selectionElement1 = driver.findElement(
+				By.xpath("(//label[text()='Service Group']//ancestor::div[1]//div[@role='listbox']//span/span[text()='"
+						+ serviceGrp + "'])[4]"));
+		executor.executeScript("arguments[0].click();", selectionElement1);
+		UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, selectionElement1, "SG");
+		Thread.sleep(5000);
+
+		return driver;
+	}
+
+	public static WebDriver updateRevenueAfterDQCFilled(WebDriver driver, String path, ExtentTest logger, String SR,
+			String excelName, String sheetName, int row) throws InterruptedException {
+
+		WebElement inbox = driver.findElement(By.xpath("//div[@class='field-height set-background']//input"));
+
+		String serviceRevenue = excel.getCellData(sheetName, SR, row);
+
+		UtilMethods.clickOn(logger, inbox, "inbox");
+		UtilMethods.setText(logger, inbox, serviceRevenue);
+
+		return driver;
+	}
+
+	public static WebDriver includeMultipleISS(WebDriver driver, String path, ExtentTest logger,
+			String IndustrySubSegmentValue, String excelName, String sheetName, int row)
+			throws InterruptedException, EncryptedDocumentException, InvalidFormatException, IOException {
+
+		excel(excelName);
+		Thread.sleep(4000);
+		 
+		
+
+		UtilMethods.waitTillElementIsVisible(logger, driver, industrySubSegmentOnCreateOppPage);
+		int rowcount = excel.getColumnRowCount(sheetName, IndustrySubSegmentValue);
+
+		rowcount = rowcount + 2;
+		logger.log(LogStatus.INFO, "row count  " + rowcount);
+		for (int i = 2; i < rowcount; i++) {
+			String IndustrySubSegment = excel.getCellData(sheetName, IndustrySubSegmentValue, i);
+			//extra added
+			System.out.println("picklist count "+ rowcount);
+			
+			UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, industrySubSegmentOnCreateOppPage,
+					IndustrySubSegment);
+			Thread.sleep(2000);
+			logger.log(LogStatus.INFO, "fieldValue " + IndustrySubSegment);
+
+			if (IndustrySubSegment.equals("H&PS HEALTH-COMM'L PAYER")
+					|| IndustrySubSegment.equals("H&PS HEALTH-COMM'L PROVIDER")) {
+
+				String IndustrySubSegmentData[] = IndustrySubSegment.split("'");
+				UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger,
+						driver.findElement(By
+								.xpath("//span[text()='Industry Sub Segment']/../../following-sibling::div//div[contains(text(),'"
+										+ IndustrySubSegmentData[0] + "') and contains(text(),'"
+										+ IndustrySubSegmentData[1] + "')]")),
+						"industry sub segment");
+
+			} else {
+
+				UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger,
+						driver.findElement(By
+								.xpath("//span[text()='Industry Sub Segment']/../../following-sibling::div//div[text()='"+ IndustrySubSegment + "']")),
+						"industry sub segment");
+			}
+		}
+		return driver;
+	}
+
+	public static WebDriver createOppFromCR(WebDriver driver, String path, ExtentTest logger, String oppName,
+			String closeDt,String sellingCountryval, String localCurrencyVal, String IndustrySubSegmentValue, String excelName, String sheetName,
+			int row) throws InterruptedException {
+
+		excel(excelName);
+
+		String opportunityName;
+		String closeDate;
+		String localCurrency;
+		String sellingCountry;
+		String IndustrySubSegment;
+
+		opportunityName = excel.getCellData(sheetName, oppName, row);
+		closeDate = excel.getCellData(sheetName, closeDt, row);
+		localCurrency = excel.getCellData(sheetName, localCurrencyVal, row);
+		sellingCountry = excel.getCellData(sheetName, sellingCountryval, row);
+		IndustrySubSegment = excel.getCellData(sheetName, IndustrySubSegmentValue, row);
+
+		UtilMethods.waitTillElementIsVisible(logger, driver, oppRelatedList);
+		//UtilMethods.clickOn(logger, oppRelatedList, "oppRelatedList is clicked");
+		UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, oppRelatedList, "oppRelatedList is clicked");
+		Thread.sleep(5000);
+
+		UtilMethods.waitTillElementIsVisible(logger, driver, newButton1);
+		UtilMethods.clickOn(logger, newButton1, "newButton is clicked");
+		Thread.sleep(5000);
+
+		UtilMethods.waitTillElementIsVisible(logger, driver, opportunityNameOnCreateOppPage);
+		UtilMethods.setText(logger, opportunityNameOnCreateOppPage, opportunityName);
+		Thread.sleep(5000);
+
+		JavascriptExecutor executor = (JavascriptExecutor) driver;
+
+		WebElement element2 = driver
+				.findElement(By.xpath("//label[text()='Local Currency']/ancestor::lightning-combobox//button"));
+		UtilMethods.waitTillElementIsVisible(logger, driver, element2);
+		UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, element2, "Local Currency");
+		WebElement selectionElement1 = driver.findElement(
+				By.xpath("//label[text()='Local Currency']//ancestor::div[1]//div[@role='listbox']//span/span[text()='" + localCurrency + "']"));
+		executor.executeScript("arguments[0].click();", selectionElement1);
+		UtilMethods.waitTillElementIsVisible(logger, driver, closeDateOnCreateOppPage);
+		UtilMethods.setText(logger, closeDateOnCreateOppPage, closeDate);
+		
+	
+		WebElement element1 = driver.findElement(
+				By.xpath("//label[text()='Selling Country/Location']/ancestor::lightning-combobox//input | //label[text()='Selling Country/Location']/ancestor::lightning-combobox//button[@name='SellingCountry__c']"));
+		Thread.sleep(2000);
+		UtilMethods.waitTillElementIsVisible(logger, driver, element1);
+		UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, element1, "Seling Country");
+		WebElement selectionElement = driver.findElement(By
+				.xpath("//label[text()='Selling Country/Location']//ancestor::div[1]//div[@role='listbox']//span/span[text()='"
+						+ sellingCountry + "']"));
+		executor.executeScript("arguments[0].click();", selectionElement);
+		
+		Thread.sleep(5000);
+		UtilMethods.waitTillElementIsVisible(logger, driver, industrySubSegmentOnCreateOppPage);
+		UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, industrySubSegmentOnCreateOppPage,
+				"ISS");
+		Thread.sleep(5000);
+		
+	
+		if (IndustrySubSegment.equals("H&PS HEALTH-COMM'L PAYER")
+				|| IndustrySubSegment.equals("H&PS HEALTH-COMM'L PROVIDER")) {
+
+			String IndustrySubSegmentData[] = IndustrySubSegment.split("'");
+			UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger,
+					driver.findElement(By
+							.xpath("//span[text()='Industry Sub Segment']/../../following-sibling::div//div[contains(text(),'"
+									+ IndustrySubSegmentData[0] + "') and contains(text(),'" + IndustrySubSegmentData[1]
+									+ "')]")),
+					"industry sub segment");
+
+		} else {
+
+			UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger,
+					driver.findElement(
+							By.xpath("//span[text()='Industry Sub Segment']/../../following-sibling::div//div[text()='"
+									+ IndustrySubSegment + "']")),
+					"industry sub segment");
+		}
+
+		/*UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, industrySubSegmentOnCreateOppPage,
+				"ISS");*/
+				
+		
+		
+			return driver;
+	}
+    // new method for close date
+	public static WebDriver createOppFromCRDate(WebDriver driver, String path, ExtentTest logger, String oppName,
+			String closeDt, String localCurrencyVal, String IndustrySubSegmentValue, String excelName, String sheetName,
+			int row) throws InterruptedException {
+
+		excel(excelName);
+
+		String opportunityName;
+		String closeDate;
+		String localCurrency;
+		String IndustrySubSegment;
+
+		opportunityName = excel.getCellData(sheetName, oppName, row);
+		closeDate = excel.getCellData(sheetName, closeDt, row);
+		localCurrency = excel.getCellData(sheetName, localCurrencyVal, row);
+		IndustrySubSegment = excel.getCellData(sheetName, IndustrySubSegmentValue, row);
+
+		UtilMethods.waitTillElementIsVisible(logger, driver, oppRelatedList);
+		//UtilMethods.clickOn(logger, oppRelatedList, "oppRelatedList is clicked");
+		UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, oppRelatedList, "oppRelatedList is clicked");
+		Thread.sleep(5000);
+
+		UtilMethods.waitTillElementIsVisible(logger, driver, newButton1);
+		UtilMethods.clickOn(logger, newButton1, "newButton is clicked");
+		Thread.sleep(5000);
+
+		UtilMethods.waitTillElementIsVisible(logger, driver, opportunityNameOnCreateOppPage);
+		UtilMethods.setText(logger, opportunityNameOnCreateOppPage, opportunityName);
+		Thread.sleep(5000);
+
+		JavascriptExecutor executor = (JavascriptExecutor) driver;
+
+		WebElement element2 = driver
+				.findElement(By.xpath("//label[text()='Local Currency']/ancestor::lightning-combobox//button"));
+		UtilMethods.waitTillElementIsVisible(logger, driver, element2);
+		UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, element2, "Local Currency");
+		WebElement selectionElement1 = driver.findElement(
+				By.xpath("//label[text()='Local Currency']//ancestor::div[1]//div[@role='listbox']//span/span[text()='" + localCurrency + "']"));
+		executor.executeScript("arguments[0].click();", selectionElement1);
+		
+		
+		Thread.sleep(5000);
+		UtilMethods.waitTillElementIsVisible(logger, driver, industrySubSegmentOnCreateOppPage);
+		UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, industrySubSegmentOnCreateOppPage,
+				"ISS");
+		Thread.sleep(5000);
+		
+	
+		if (IndustrySubSegment.equals("H&PS HEALTH-COMM'L PAYER")
+				|| IndustrySubSegment.equals("H&PS HEALTH-COMM'L PROVIDER")) {
+
+			String IndustrySubSegmentData[] = IndustrySubSegment.split("'");
+			UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger,
+					driver.findElement(By
+							.xpath("//span[text()='Industry Sub Segment']/../../following-sibling::div//div[contains(text(),'"
+									+ IndustrySubSegmentData[0] + "') and contains(text(),'" + IndustrySubSegmentData[1]
+									+ "')]")),
+					"industry sub segment");
+
+		} else {
+
+			UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger,
+					driver.findElement(
+							By.xpath("//span[text()='Industry Sub Segment']/../../following-sibling::div//div[text()='"
+									+ IndustrySubSegment + "']")),
+					"industry sub segment");
+		}
+
+		
+				
+		UtilMethods.waitTillElementIsVisible(logger, driver, closeDateOnCreateOppPage);
+		UtilMethods.setText(logger, closeDateOnCreateOppPage, closeDate);
+		//closeDateOnCreateOppPage.sendKeys(Keys.ENTER);
+		
+		UtilMethods.clickEnter(logger, closeDateOnCreateOppPage, "Validate error msg");
+			return driver;
+	}
+	
+	public static WebDriver updateOppName(WebDriver driver, String path, ExtentTest logger, String oppName,
+			String excelName, String sheetName, int row) throws InterruptedException {
+
+		excel(excelName);
+		
+		String opportunityName = excel.getCellData(sheetName, oppName, row);
+		opportunityNameOnCreateOppPage.clear();
+		
+		// Setting Value for Opportunity Name field
+		UtilMethods.waitTillElementIsVisible(logger, driver, opportunityNameOnCreateOppPage);
+		UtilMethods.setText(logger, opportunityNameOnCreateOppPage, opportunityName);
+		return driver;
+	}
+
+	public static WebDriver updateCR(WebDriver driver, String path, ExtentTest logger, String crID, String excelName,
+			String sheetName, int row) throws InterruptedException {
+
+		UtilMethods.waitTillElementIsVisible(logger, driver, clearCR);
+		//check click function
+		//UtilMethods.clickOn(logger, clearCR, "clearCR is done");
+		MethodFactory.clickTheRespectiveButtonByJavaScriptExecutor(driver, path, logger,
+				clearCR, "CR is cleared");
+		//
+		
+		MethodFactory.refreshPg(driver);
+		Thread.sleep(3000);
+		String accountID = excel.getCellData(sheetName, crID, row);
+
+		UtilMethods.waitTillElementIsVisible(logger, driver, customerRelationshipOnCreateOppPage);
+		UtilMethods.setText(logger, customerRelationshipOnCreateOppPage, accountID);
+		Thread.sleep(3000);
+
+//		UtilMethods.clickEnter(logger, customerRelationshipOnCreateOppPage, "Customer Relationship");
+//		Thread.sleep(4000);
+		UtilMethods.clickEnter(logger, customerRelationshipOnCreateOppPage, "Customer Relationship");
+		Thread.sleep(10000);
+		UtilMethods.clickOn(logger, cRSelection, "CR");
+		UtilMethods.clickOn(logger, selectButton, "Select");
+		Thread.sleep(3000);
+
+		return driver;
+	}
+	public static WebDriver updateNewCR(WebDriver driver, String path, ExtentTest logger, String crID, String excelName,
+			String sheetName, int row, String sellingCountryval, String IndustrySubSegmentValue) throws InterruptedException {
+
+		UtilMethods.waitTillElementIsVisible(logger, driver, clearCR);
+		//check click function
+		//UtilMethods.clickOn(logger, clearCR, "clearCR is done");
+		MethodFactory.clickTheRespectiveButtonByJavaScriptExecutor(driver, path, logger,
+				clearCR, "CR is cleared");
+		//
+		String IndustrySubSegment;
+		String sellingCountry;
+		
+		Thread.sleep(3000);
+		String accountID = excel.getCellData(sheetName, crID, row);
+		sellingCountry = excel.getCellData(sheetName, sellingCountryval, row);
+		IndustrySubSegment = excel.getCellData(sheetName, IndustrySubSegmentValue, row);
+	
+
+		UtilMethods.waitTillElementIsVisible(logger, driver, customerRelationshipOnCreateOppPage);
+		UtilMethods.setText(logger, customerRelationshipOnCreateOppPage, accountID);
+		Thread.sleep(3000);
+
+		UtilMethods.clickEnter(logger, customerRelationshipOnCreateOppPage, "Customer Relationship");
+//		UtilMethods.waitTillElementIsVisible(logger, driver, RT_WinLossSurveyFindingsPage.cRSelection);
+//		UtilMethods.clickOn(logger, cRSelection, "CR");
+		Thread.sleep(10000);
+		UtilMethods.clickOn(logger, cRSelection, "CR");
+		UtilMethods.clickOn(logger, selectButton, "Select");
+		Thread.sleep(3000);
+		
+		JavascriptExecutor executor = (JavascriptExecutor) driver;
+				
+		WebElement element1 = driver.findElement(
+				By.xpath("//label[text()='Selling Country/Location']/ancestor::lightning-combobox//input | //label[text()='Selling Country/Location']/ancestor::lightning-combobox//button[@name='SellingCountry__c']"));
+		Thread.sleep(2000);
+		UtilMethods.waitTillElementIsVisible(logger, driver, element1);
+		UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, element1, "Seling Country");
+		WebElement selectionElement = driver.findElement(By
+				.xpath("//label[text()='Selling Country/Location']//ancestor::div[1]//div[@role='listbox']//span/span[text()='"
+						+ sellingCountry + "']"));
+		executor.executeScript("arguments[0].click();", selectionElement);
+		
+		Thread.sleep(5000);
+		UtilMethods.waitTillElementIsVisible(logger, driver, industrySubSegmentOnCreateOppPage);
+		UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, industrySubSegmentOnCreateOppPage,
+				"ISS");
+		Thread.sleep(5000);
+		
+	
+		if (IndustrySubSegment.equals("H&PS HEALTH-COMM'L PAYER")
+				|| IndustrySubSegment.equals("H&PS HEALTH-COMM'L PROVIDER")) {
+
+			String IndustrySubSegmentData[] = IndustrySubSegment.split("'");
+			UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger,
+					driver.findElement(By
+							.xpath("//span[text()='Industry Sub Segment']/../../following-sibling::div//div[contains(text(),'"
+									+ IndustrySubSegmentData[0] + "') and contains(text(),'" + IndustrySubSegmentData[1]
+									+ "')]")),
+					"industry sub segment");
+
+		} else {
+
+			UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger,
+					driver.findElement(
+							By.xpath("//span[text()='Industry Sub Segment']/../../following-sibling::div//div[text()='"
+									+ IndustrySubSegment + "']")),
+					"industry sub segment");
+		}
+		Thread.sleep(3000);
+
+		return driver;
+	}
+	
+
+	public static WebDriver updateDQCResponse(WebDriver driver, String path, ExtentTest logger, String headingQues,
+			String response, String excelName, String sheetName, int row)
+			throws InterruptedException, EncryptedDocumentException, InvalidFormatException, IOException {
+		excel(excelName);
+		int rowcount = excel.getColumnRowCount(sheetName, headingQues);
+		rowcount = rowcount + 2;
+		logger.log(LogStatus.INFO, "row count  " + rowcount);
+		for (int i = 2; i < rowcount; i++) {
+			String headingValue = excel.getCellData(sheetName, headingQues, i);
+			String selection = excel.getCellData(sheetName, response, i);
+
+			WebElement field1 = driver.findElement(By
+					.xpath("//div[@c-oppcreatedqclineitem_oppcreatedqclineitem]//span[text()='" + headingValue + "']"));
+			
+			String strXpath = "//div[@c-oppcreatedqclineitem_oppcreatedqclineitem]//span[text()='" + headingValue + "']";
+			WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(1000));
+
+			WebElement element=wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(strXpath)));
+
+			UtilMethods.verifyElementPresent(logger, driver, driver.findElements(By.xpath(strXpath)));
+		
+			((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element);
+			UtilMethods.clickOn(logger, element, "textValue" + headingValue);
+			Thread.sleep(2000);
+			
+			// Selecting Response
+			WebElement selectionTxt = driver.findElement(By.xpath("//slot//div[text()='" + selection + "']"));
+
+			//UtilMethods.clickOn(logger, selectionTxt, "selection");
+			UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, selectionTxt, "selection");
+		}
+		return driver;
+	}
+
+	// Validations
+	
+
+	public static WebDriver validateDQCResult(WebDriver driver, String path, ExtentTest logger, String excelName,
+			String sheetName, int row)
+			throws InterruptedException, EncryptedDocumentException, InvalidFormatException, IOException {
+             excel(excelName);
+		if (weakResult.size() > 0) {
+			logger.log(LogStatus.PASS, " Deliverability is weak.");
+			S_ASSERT.assertTrue(true);
+		} else {
+			TS = TakeScreenshot.CaptureScreen(driver, "validateDQCResult");
+			logger.log(LogStatus.FAIL, "Deliverability is not weak. " + logger.addScreenCapture(TS));
+			S_ASSERT.assertTrue(false);
+		}
+
+		int ans = notAnswered.size();
+		if (ans == 10) {
+			logger.log(LogStatus.PASS, "8 not answered, 2 headings are blank");
+			S_ASSERT.assertTrue(true);
+		} else {
+			TS = TakeScreenshot.CaptureScreen(driver, "validateDQCResult");
+			logger.log(LogStatus.FAIL, " Answers not marked properly" + logger.addScreenCapture(TS));
+			S_ASSERT.assertTrue(false);
+		}
+
+		if (overallResult.size() == 1) {
+			logger.log(LogStatus.PASS, "Overall Result is blank");
+			S_ASSERT.assertTrue(true);
+		} else {
+			TS = TakeScreenshot.CaptureScreen(driver, "validateDQCResult");
+			logger.log(LogStatus.FAIL, " Overall Result is not marked properly" + logger.addScreenCapture(TS));
+			S_ASSERT.assertTrue(false);
+		}
+
+		return driver;
+	}
+
+	public static WebDriver validateAttriPerField(WebDriver driver, String path, ExtentTest logger,
+			String attrNameValue, String excelName, String sheetName, int row)
+			throws InterruptedException, EncryptedDocumentException, InvalidFormatException, IOException {
+excel(excelName);
+		int rowcount = excel.getColumnRowCount(sheetName, attrNameValue);
+		
+	//	UtilMethods.clickOn(logger, editLink, "editLink");
+		UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, editLink,
+				"Edit% Link");
+		Thread.sleep(3000);
+		List<WebElement> inputValues = driver
+				.findElements(By.xpath("//div[@class='slds-modal__content editCard']//div[@lightning-input_input]//input[@aria-label]|//div[@class='slds-modal__content editCard']//div[2]/lightning-input"));
+		int values = inputValues.size();
+		logger.log(LogStatus.INFO, " Values " + values);
+		logger.log(LogStatus.INFO, " rowcount " + rowcount);
+	
+		Thread.sleep(3000);
+		if (rowcount == values) {
+			logger.log(LogStatus.PASS, "Value is correct.");
+			S_ASSERT.assertTrue(true);
+		} else {
+			TS = TakeScreenshot.CaptureScreen(driver, "updateAttriPerc");
+			logger.log(LogStatus.FAIL, "Value is not correct." + logger.addScreenCapture(TS));
+			S_ASSERT.assertTrue(false);
+		}
+		return driver;
+	}
+
+	public static WebDriver validateAttributePerc(WebDriver driver, String path, ExtentTest logger,
+			String attrNameValue, String excelName, String sheetName, int row)
+			throws InterruptedException, EncryptedDocumentException, InvalidFormatException, IOException {
+
+		Thread.sleep(5000);
+excel(excelName);
+		int rowcount = excel.getColumnRowCount(sheetName, attrNameValue);
+		rowcount = rowcount + 2;
+		logger.log(LogStatus.INFO, "row count  " + rowcount);
+		for (int i = 2; i < rowcount; i++) {
+
+			String attrName = excel.getCellData(sheetName, attrNameValue, i);
+			logger.log(LogStatus.INFO, " attrName " + attrName);
+			List<WebElement> inputValues = driver
+					.findElements(By.xpath("//span[text()='" + attrName + "']//following::span[text()=' 50% ']"));
+			logger.log(LogStatus.INFO, " inputValues " + inputValues);
+			if (inputValues.size() > 0) {
+				logger.log(LogStatus.PASS, "% Value is correct.");
+				S_ASSERT.assertTrue(true);
+			} else {
+				TS = TakeScreenshot.CaptureScreen(driver, "validateAttributePerc");
+				logger.log(LogStatus.FAIL, "% Value is not correct." + logger.addScreenCapture(TS));
+				S_ASSERT.assertTrue(false);
+			}
+
+		}
+		return driver;
+	}
+
+	public static WebDriver validateErrorMsg(WebDriver driver, String path, ExtentTest logger, String errorMsg,
+			String excelName, String sheetName, int row) throws InterruptedException {
+ 
+		excel(excelName);
+		Thread.sleep(2000);
+	
+		String ErrorMsg;
+		ErrorMsg = excel.getCellData(sheetName, errorMsg, row);
+//		MethodFactory.clickTheRespectiveButtonByJavaScriptExecutor(driver, path, logger,
+//				saveAndContinueButtonOnOppCreatePage, "saveAndContinueButtonOnOppCreatePage");
+		driver.manage().window().maximize();
+		List<WebElement> errorMessage1 = driver.findElements(By.xpath("//span[contains(text(),'" + ErrorMsg + "')]|//div[text()='"+ErrorMsg + "']"));
+		//WebElement errorMessage1 = driver.findElement(By.xpath("//span[contains(text(),'" + ErrorMsg + "')]"));
+		
+		int size = errorMessage1.size();
+ 
+		logger.log(LogStatus.INFO, "size " + size);
+ 
+		if (size > 0) {// || createPage > 0 ){
+			logger.log(LogStatus.PASS, "Proper error msg is displayed:" +ErrorMsg);
+			S_ASSERT.assertTrue(true);
+		} else {
+			TS = TakeScreenshot.CaptureScreen(driver, "Opp Create Function");
+			logger.log(LogStatus.FAIL, "Error msg is not displayed correctly" + logger.addScreenCapture(TS));
+			S_ASSERT.assertTrue(false);
+		}
+ 
+	return driver;
+	}
+ 
+	public static WebDriver validateErrorMsgOnSave(WebDriver driver, String path, ExtentTest logger, String errorMsg,
+			String excelName, String sheetName, int row) throws InterruptedException {
+
+		excel(excelName);
+		Thread.sleep(2000);
+		//UtilMethods.clickOn(logger, saveAndContinueButtonOnOppCreatePage, "saveAndContinueButtonOnOppCreatePage clicked");
+		UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, saveAndContinueButtonOnOppCreatePage, "saveAndContinueButtonOnOppCreatePage");
+		Thread.sleep(1000);
+		String ErrorMsg;
+		ErrorMsg = excel.getCellData(sheetName, errorMsg, row);
+
+//		List<WebElement> errorMessage1 = driver.findElements(By.xpath("//span[contains(text(),'" + ErrorMsg + "')]"));
+//
+//		int size = errorMessage1.size();
+
+		List<WebElement> errorMessage1 = driver.findElements(By.xpath("//span[contains(text(),'" + ErrorMsg + "')]"));
+		Thread.sleep(3000);
+		int size = errorMessage1.size();
+		
+		logger.log(LogStatus.INFO, "size " + size);
+		
+		if (size > 0) {// || createPage > 0 ){
+			logger.log(LogStatus.PASS, "Opportunity is not created.");
+			S_ASSERT.assertTrue(true);
+		} else {
+			TS = TakeScreenshot.CaptureScreen(driver, "Opp Create Function");
+			logger.log(LogStatus.FAIL, "Opportunity is created." + logger.addScreenCapture(TS));
+			S_ASSERT.assertTrue(false);
+		}
+
+		return driver;
+	}
+	
+	public static WebDriver validatError(WebDriver driver, String path, ExtentTest logger, String errorMsg,
+			String excelName, String sheetName, int row) throws InterruptedException {
+
+		excel(excelName);
+		Thread.sleep(2000);
+		//UtilMethods.clickOn(logger, saveAndContinueButtonOnOppCreatePage, "saveAndContinueButtonOnOppCreatePage clicked");
+	//	UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, saveAndContinueButtonOnOppCreatePage, "saveAndContinueButtonOnOppCreatePage");
+		Thread.sleep(1000);
+		String ErrorMsg;
+		ErrorMsg = excel.getCellData(sheetName, errorMsg, row);
+
+		//List<WebElement> errorMessage1 = driver.findElements(By.xpath("//span[contains(text(),'" + ErrorMsg + "')]"));
+		List<WebElement> errorMessage1 = driver.findElements(By.xpath("//div[@class='viewport' and @aria-hidden='false' ]//div[contains(@class,'active')]//span[contains(text(),'" + ErrorMsg + "')]]"));
+		int size = errorMessage1.size();
+
+		logger.log(LogStatus.INFO, "size " + size);
+		
+		if (size > 0) {// || createPage > 0 ){
+			logger.log(LogStatus.PASS, "Opportunity is not created.");
+			S_ASSERT.assertTrue(true);
+		} else {
+			TS = TakeScreenshot.CaptureScreen(driver, "Opp Create Function");
+			logger.log(LogStatus.FAIL, "Opportunity is created." + logger.addScreenCapture(TS));
+			S_ASSERT.assertTrue(false);
+		}
+
+		return driver;
+	}
+
+	public static WebDriver validateDQCResultAfterOppCreation(WebDriver driver, String path, ExtentTest logger,
+			String delValue, String excelName, String sheetName, int row) throws InterruptedException {
+
+		excel(excelName);
+
+		String ErrorMsg;
+		Thread.sleep(5000);
+
+		int size = grayResult.size();
+
+		String deliverability = excel.getCellData(sheetName, delValue, row);
+
+		Thread.sleep(3000);
+		if (size == 3) {
+			logger.log(LogStatus.PASS, "DQC is correct on created Opportunity.");
+			S_ASSERT.assertTrue(true);
+		} else {
+			TS = TakeScreenshot.CaptureScreen(driver, "Opp Create Function");
+			logger.log(LogStatus.FAIL, "DQC is not correct on created Opportunity." + logger.addScreenCapture(TS));
+			S_ASSERT.assertTrue(false);
+		}
+
+		List<WebElement> delvalue = driver.findElements(By.xpath("//table//td//img[@alt='" + deliverability + "']"));
+
+		if (delvalue.size() == 1) {
+			logger.log(LogStatus.PASS, "DQC Value is correct on created Opportunity.");
+			S_ASSERT.assertTrue(true);
+		} else {
+			TS = TakeScreenshot.CaptureScreen(driver, "Opp Create Function");
+			logger.log(LogStatus.FAIL,
+					"DQC Value is not correct on created Opportunity." + logger.addScreenCapture(TS));
+			S_ASSERT.assertTrue(false);
+		}
+
+		return driver;
+	}
+
+	public static WebDriver validateRevenue(WebDriver driver, String path, ExtentTest logger, String ssgValue,
+			String revenueValue, String excelName, String sheetName, int row) throws InterruptedException {
+
+		excel(excelName);
+
+		Thread.sleep(5000);
+
+		String ssg = excel.getCellData(sheetName, ssgValue, row);
+		String revenue = excel.getCellData(sheetName, revenueValue, row);
+
+		List<WebElement> totRevenue = driver
+				.findElements(By.xpath("//a[text()='" + ssg + "']//ancestor::tr//span[text()='" + revenue + "']"));
+
+		if (totRevenue.size() == 1) {
+			logger.log(LogStatus.PASS, "Revenue is correct on created Opportunity.");
+			S_ASSERT.assertTrue(true);
+		} else {
+			TS = TakeScreenshot.CaptureScreen(driver, "validateRevenue");
+			logger.log(LogStatus.FAIL, "Revenue is not correct on created Opportunity." + logger.addScreenCapture(TS));
+			S_ASSERT.assertTrue(false);
+		}
+		return driver;
+	}
+
+	public static WebDriver validateErrorMsgForRevenue(WebDriver driver, String path, ExtentTest logger,
+			String errorMsg, String excelName, String sheetName, int row) throws InterruptedException {
+
+		excel(excelName);
+
+		String ErrorMsg;
+		Thread.sleep(3000);
+		ErrorMsg = excel.getCellData(sheetName, errorMsg, row);
+
+		List<WebElement> errorMessage1 = driver.findElements(By.xpath("//div[text()='" + ErrorMsg + "']"));
+
+		int size = errorMessage1.size();
+
+		if (size > 0) {
+			logger.log(LogStatus.PASS, "Revenue is not correct.");
+			S_ASSERT.assertTrue(true);
+		} else {
+			TS = TakeScreenshot.CaptureScreen(driver, "Revenue is correct.");
+			logger.log(LogStatus.FAIL, "Revenue is correct." + logger.addScreenCapture(TS));
+			S_ASSERT.assertTrue(false);
+		}
+
+		return driver;
+	}
+
+	public static WebDriver validateSaveBtnEnabled(WebDriver driver, String path, ExtentTest logger, String excelName,
+			String sheetName, int row) throws InterruptedException {
+
+		List<WebElement> btnSize = driver.findElements(By.xpath("//button[text()='Save & Continue']"));
+		int size = btnSize.size();
+
+		if (size > 0) {
+			logger.log(LogStatus.PASS, "Save Button is enabled");
+			S_ASSERT.assertTrue(true);
+		} else {
+			TS = TakeScreenshot.CaptureScreen(driver, "validateSaveBtnEnabled");
+			logger.log(LogStatus.FAIL, "Save Button is Disabled" + logger.addScreenCapture(TS));
+			S_ASSERT.assertTrue(false);
+		}
+
+		return driver;
+	}
+
+	public static WebDriver validateSaveBtnDisabled(WebDriver driver, String path, ExtentTest logger, String excelName,
+			String sheetName, int row) throws InterruptedException {
+
+		List<WebElement> btnSize = driver
+				.findElements(By.xpath("//button[@disabled]//following::button[text()='Save & Continue']"));
+		int size = btnSize.size();
+
+		if (size > 0) {
+			logger.log(LogStatus.PASS, "Button Disabled");
+			S_ASSERT.assertTrue(true);
+		} else {
+			TS = TakeScreenshot.CaptureScreen(driver, "validateSaveBtnDisabled");
+			logger.log(LogStatus.FAIL, "Button enabled" + logger.addScreenCapture(TS));
+			S_ASSERT.assertTrue(false);
+		}
+
+		return driver;
+	}
+
+	public static WebDriver validateNumberOfSSGsCanBeAdded(WebDriver driver, String path, ExtentTest logger)
+			throws InterruptedException {
+		for (int i = 1; i < 4; i++) {
+			if (ssgAddBtn.isEnabled()) {
+				Thread.sleep(2000);
+				UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, ssgAddBtn, "ssgAddBtn");
+				logger.log(LogStatus.INFO, "Clicked " + i);
+				Thread.sleep(2000);
+				Actions mouseHover = new Actions(driver);
+				mouseHover.moveToElement(cancelButtonInEditFinancialPage);
+			}
+		}
+
+		Thread.sleep(3000);
+		if (ssgAddButton.size() > 0) {
+			TS = TakeScreenshot.CaptureScreen(driver, "Add Button is present");
+			logger.log(LogStatus.FAIL, "Add Button is still present" + logger.addScreenCapture(TS));
+			S_ASSERT.assertTrue(false);
+		} else {
+
+			logger.log(LogStatus.PASS, "Add Button is not present");
+			S_ASSERT.assertTrue(true);
+		}
+
+		Thread.sleep(2000);
+		UtilMethods.clickOn(logger, delete2ndSSG, "deleteSSG");
+		Thread.sleep(2000);
+		UtilMethods.clickOn(logger, oKButtonSubmitForApproval, "oKButtonSubmitForApproval");
+		Thread.sleep(2000);
+
+		if (ssgAddButton.size() == 1) {
+			logger.log(LogStatus.PASS, "Add Button is present");
+			S_ASSERT.assertTrue(true);
+
+		} else {
+			TS = TakeScreenshot.CaptureScreen(driver, "Add Button is not present");
+			logger.log(LogStatus.FAIL, "Add Button is not present" + logger.addScreenCapture(TS));
+			S_ASSERT.assertTrue(false);
+		}
+		return driver;
+	}
+
+	public static WebDriver validateMessageOnPg2(WebDriver driver, String path, ExtentTest logger, String textMsg,
+			String excelName, String sheetName, int row) throws InterruptedException {
+
+		Thread.sleep(10000);
+
+		UtilMethods.clickOn(logger, previousStepButton, "previousStepButton");
+		String txtMsg = excel.getCellData(sheetName, textMsg, row);
+
+		List<WebElement> text = driver.findElements(By.xpath("//div[text()='" + txtMsg + "']"));
+
+		if (text.size() == 1) {
+			logger.log(LogStatus.PASS, "Correct Message is present");
+			S_ASSERT.assertTrue(true);
+		} else {
+			TS = TakeScreenshot.CaptureScreen(driver, "validateMessageOnPg2");
+			logger.log(LogStatus.FAIL, "Correct Message is not present" + logger.addScreenCapture(TS));
+			S_ASSERT.assertTrue(false);
+		}
+
+		return driver;
+	}
+
+	public static WebDriver validatePlaceholderText(WebDriver driver, String path, ExtentTest logger, String FieldName,
+			String FieldValue, String FieldName2, String FieldValue2, String excelName, String sheetName, int row)
+			throws InterruptedException, EncryptedDocumentException, InvalidFormatException, IOException {
+
+		excel(excelName);
+		int rowcount = excel.getColumnRowCount(sheetName, FieldName);
+		String fieldValue2 = excel.getCellData(sheetName, FieldValue2, row);
+		String fieldName2 = excel.getCellData(sheetName, FieldName2, row);
+		rowcount = rowcount + 2;
+
+		for (int i = 2; i < rowcount; i++) {
+			String fieldValue = excel.getCellData(sheetName, FieldValue, i);
+			String fieldName = excel.getCellData(sheetName, FieldName, i);
+
+			List<WebElement> text = driver.findElements(By.xpath(
+					"//label[text()='" + fieldName + "']//ancestor::div//input[@placeholder='" + fieldValue + "']|//label[text()='" + fieldName + "']//ancestor::div//div[text()='" + fieldValue + "']|//div[text()='" + fieldValue + "']"));
+			int size = text.size();
+
+			if (size == 1) {
+				logger.log(LogStatus.PASS, "Placeholder Text is Present as expected in " + fieldName);
+				S_ASSERT.assertTrue(true);
+			} else {
+				TS = TakeScreenshot.CaptureScreen(driver, "Placeholder Text is not as expected.");
+				logger.log(LogStatus.FAIL,
+						"Placeholder Text is not as expected." + fieldName + logger.addScreenCapture(TS));
+				S_ASSERT.assertTrue(false);
+			}
+		}
+
+		List<WebElement> text2 = driver.findElements(By.xpath(
+				"//span[text()='" + fieldName2 + "']//ancestor::div//input[@placeholder='" + fieldValue2 + "']|//div[text()='" + fieldValue2 + "']"));
+		int size = text2.size();
+
+		if (size == 1) {
+			logger.log(LogStatus.PASS, "Placeholder Text is Present as expected in " + fieldName2);
+			S_ASSERT.assertTrue(true);
+		} else {
+			TS = TakeScreenshot.CaptureScreen(driver, "Placeholder Text is not as expected.");
+			logger.log(LogStatus.FAIL,
+					"Placeholder Text is not as expected." + fieldName2 + logger.addScreenCapture(TS));
+			S_ASSERT.assertTrue(false);
+		}
+		return driver;
+	}
+
+	public static WebDriver validateCRName(WebDriver driver, String path, ExtentTest logger, String CRName,
+			String excelName, String sheetName, int row) throws InterruptedException {
+ 
+		excel(excelName);
+ 
+		String crName = excel.getCellData(sheetName, CRName, row);
+ 
+		List<WebElement> crname = driver.findElements(By.xpath("//input[contains(@placeholder,'" + crName + "')]"));
+		int size = crname.size();
+ 
+		if (size == 1) {
+			logger.log(LogStatus.PASS, "CR is Present as expected.");
+			S_ASSERT.assertTrue(true);
+		} else {
+			TS = TakeScreenshot.CaptureScreen(driver, "CR is not as expected.");
+			logger.log(LogStatus.FAIL, "CR is not as expected." + logger.addScreenCapture(TS));
+			S_ASSERT.assertTrue(false);
+		}
+ 
+		return driver;
+	}
+	
+
+	public static WebDriver validateOppInRelaetdList(WebDriver driver, String path, ExtentTest logger, String oppName,
+			String excelName, String sheetName, int row) throws InterruptedException {
+
+		excel(excelName);
+
+		String OppName = excel.getCellData(sheetName, oppName, row);
+
+		UtilMethods.waitTillElementIsVisible(logger, driver, oppRelatedList);
+		//UtilMethods.clickOn(logger, oppRelatedList, "oppRelatedList is clicked");
+		UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, oppRelatedList, "oppRelatedList is clicked");
+		Thread.sleep(5000);
+		
+		List<WebElement> OppNameInRL = driver.findElements(By.xpath("//a[text()='" + OppName + "']|//a//span/slot[text()='" + OppName + "']"));
+		Thread.sleep(5000);
+		int size = OppNameInRL.size();
+     System.out.println(size);
+		if (size > 0) {
+			logger.log(LogStatus.PASS, "Opp is Present as expected.");
+			S_ASSERT.assertTrue(true);
+		} else {
+			UtilMethods.clickOn(logger, oppColumnonCR, "opp column on CR is clicked");
+			List<WebElement> OppNameInRL1 = driver.findElements(By.xpath("//a[text()='" + OppName + "']"));
+			Thread.sleep(5000);
+			int size1 = OppNameInRL1.size();
+			System.out.println(size1);
+			if (size1 > 0) {
+				logger.log(LogStatus.PASS, "Opp is Present as expected.");
+				S_ASSERT.assertTrue(true);
+			} else {
+			TS = TakeScreenshot.CaptureScreen(driver, "Opp is not present.");
+			logger.log(LogStatus.FAIL, "Opp is not present as expected." + logger.addScreenCapture(TS));
+			S_ASSERT.assertTrue(false);
+		}}
+
+		return driver;
+	}
+
+	public static WebDriver validateFieldsOnPage1(WebDriver driver, String path, ExtentTest logger, String fieldNames,
+			String ISS, String excelName, String sheetName, int row)
+			throws InterruptedException, EncryptedDocumentException, InvalidFormatException, IOException {
+
+		excel(excelName);
+		logger.log(LogStatus.INFO, "Validating fields function");
+		Thread.sleep(5000);
+		int rowcount = excel.getColumnRowCount(sheetName, fieldNames);
+		rowcount = rowcount + 2;
+
+		logger.log(LogStatus.INFO, "rowcount " + rowcount);
+		
+		Thread.sleep(7000);
+		for (int i = 2; i < rowcount; i++) {
+			String fieldValue = excel.getCellData(sheetName, fieldNames, i);
+
+			List<WebElement> fields = driver.findElements(
+					By.xpath("(//div[@class='slds-p-horizontal_medium']//label[text()='" + fieldValue + "'])[1]"));
+
+			if (fields.size() == 1) {
+				logger.log(LogStatus.PASS, "Field is visible on UI " + fieldValue);
+				S_ASSERT.assertTrue(true);
+			} else {
+				TS = TakeScreenshot.CaptureScreen(driver, "validateFieldsOnPage1" + fieldValue);
+				logger.log(LogStatus.FAIL, "Field is not visible on UI " + logger.addScreenCapture(TS));
+				S_ASSERT.assertTrue(false);
+			}
+		}
+
+		String ISSfield = excel.getCellData(sheetName, ISS, row);
+		List<WebElement> fields = driver
+				.findElements(By.xpath("//div[@class='slds-p-horizontal_medium']//span[text()='" + ISSfield + "']"));
+		if (fields.size() > 0) {
+			logger.log(LogStatus.PASS, "ISS Field is visible on UI ");
+			S_ASSERT.assertTrue(true);
+		} else {
+			TS = TakeScreenshot.CaptureScreen(driver, "validateFieldsOnPage1");
+			logger.log(LogStatus.FAIL, "Field is not visible on UI " + logger.addScreenCapture(TS));
+			S_ASSERT.assertTrue(false);
+		}
+		return driver;
+	}
+
+	public static WebDriver validateFieldsOnPage2(WebDriver driver, String path, ExtentTest logger, String fieldNames,
+			String fieldName2, String excelName, String sheetName, int row)
+			throws InterruptedException, EncryptedDocumentException, InvalidFormatException, IOException {
+
+		Thread.sleep(3000);
+		excel(excelName);
+		int rowcount = excel.getColumnRowCount(sheetName, fieldNames);
+		rowcount = rowcount + 2;
+
+		for (int i = 2; i < rowcount; i++) {
+			String fieldValue = excel.getCellData(sheetName, fieldNames, i);
+
+			List<WebElement> fields = driver.findElements(
+					By.xpath("//div[@class='slds-p-horizontal_medium']//label[text()='" + fieldValue + "']"));
+
+			if (fields.size() > 0) {
+				logger.log(LogStatus.PASS, "Field is visible on UI " + fieldValue);
+				S_ASSERT.assertTrue(true);
+			} else {
+				TS = TakeScreenshot.CaptureScreen(driver, "validateFieldsOnPage2" + fieldValue);
+				logger.log(LogStatus.FAIL, "Field is not visible on UI " + logger.addScreenCapture(TS));
+				S_ASSERT.assertTrue(false);
+			}
+		}
+		String fieldValue2 = excel.getCellData(sheetName, fieldName2, row);
+		List<WebElement> field2 = driver
+				.findElements(By.xpath("//div[@class='slds-p-horizontal_medium']//span[text()='" + fieldValue2 + "']"));
+
+		if (field2.size() > 0) {
+			logger.log(LogStatus.PASS, "Field is visible on UI " + fieldValue2);
+			S_ASSERT.assertTrue(true);
+		} else {
+			TS = TakeScreenshot.CaptureScreen(driver, "validateFieldsOnPage2" + fieldValue2);
+			logger.log(LogStatus.FAIL, "Field is not visible on UI " + logger.addScreenCapture(TS));
+			S_ASSERT.assertTrue(false);
+		}
+		return driver;
+	}
+
+	public static WebDriver validateAstrikOnFields(WebDriver driver, String path, ExtentTest logger, String fieldNames,
+			String excelName, String sheetName, int row)
+			throws InterruptedException, EncryptedDocumentException, InvalidFormatException, IOException {
+
+		excel(excelName);
+		int rowcount = excel.getColumnRowCount(sheetName, fieldNames);
+		rowcount = rowcount + 2;
+
+		for (int i = 2; i < rowcount; i++) {
+			String fieldValue = excel.getCellData(sheetName, fieldNames, i);
+
+			List<WebElement> fields = driver
+					.findElements(By.xpath("//abbr[text()='*']//following::label[text()='" + fieldValue + "']|//div[.//abbr[text()='*']]//label[text()='" + fieldValue + "']"));
+			Thread.sleep(2000);
+			if (fields.size() > 0) {
+				logger.log(LogStatus.PASS, " * is visible on UI " + fieldValue);
+				S_ASSERT.assertTrue(true);
+			} else {
+				TS = TakeScreenshot.CaptureScreen(driver, "validateAstrikOnFields" + fieldValue);
+				logger.log(LogStatus.FAIL, "* is not visible on UI " + logger.addScreenCapture(TS));
+				S_ASSERT.assertTrue(false);
+			}
+		}
+		return driver;
+	}
+	public static WebDriver validateTextOnISS(WebDriver driver, String path, ExtentTest logger, String textISS,
+			String excelName, String sheetName, int row)
+			throws InterruptedException, EncryptedDocumentException, InvalidFormatException, IOException {
+
+		String fieldValue = excel.getCellData(sheetName, textISS, row);
+		List<WebElement> fields = driver.findElements(By.xpath("//input[@placeholder='" + fieldValue + "']|//div[text()='" + fieldValue + "']"));
+
+		if (fields.size() == 1) {
+			logger.log(LogStatus.PASS, "Correct Text is visible on UI for ISS");
+			System.out.print("Correct Text is visible on UI for ISS");
+			S_ASSERT.assertTrue(true);
+		} else {
+			TS = TakeScreenshot.CaptureScreen(driver, "textOnISS");
+			logger.log(LogStatus.FAIL, " Text is not visible on UI " + logger.addScreenCapture(TS));
+			S_ASSERT.assertTrue(false);
+		}
+		return driver;
+	}
+	public static WebDriver validateTextOnPage2(WebDriver driver, String path, ExtentTest logger, String textPage2,
+			String excelName, String sheetName, int row)
+			throws InterruptedException, EncryptedDocumentException, InvalidFormatException, IOException {
+
+		Thread.sleep(15000);
+		excel(excelName);
+		String textValue = excel.getCellData(sheetName, textPage2, row);
+		List<WebElement> fields = driver.findElements(By.xpath("//div[text()='" + textValue + "']|//p[contains(text(),'" + textValue + "')]"));
+
+		if (fields.size() == 1) {
+			logger.log(LogStatus.PASS, " Correct Text is visible on UI on Page 2");
+			S_ASSERT.assertTrue(true);
+		} else {
+			TS = TakeScreenshot.CaptureScreen(driver, "validateTextOnPage2");
+			logger.log(LogStatus.FAIL, "Correct Text is not visible on UI " + logger.addScreenCapture(TS));
+			S_ASSERT.assertTrue(false);
+		}
+		return driver;
+	}
+
+	public static WebDriver validateFieldsDisabled(WebDriver driver, String path, ExtentTest logger,
+			String NumDisabledField, String excelName, String sheetName, int row)
+			throws InterruptedException, EncryptedDocumentException, InvalidFormatException, IOException {
+
+		Thread.sleep(5000);
+		excel(excelName);
+		int size = disabledFields.size();
+
+		String fieldValue = excel.getCellData(sheetName, NumDisabledField, row);
+
+		int num = Integer.parseInt(fieldValue);
+
+		if (size == num) {
+			logger.log(LogStatus.PASS, "All required fields are disabled on Size Page while returning");
+			S_ASSERT.assertTrue(true);
+		} else {
+			TS = TakeScreenshot.CaptureScreen(driver, "validateFieldsDisabled");
+			logger.log(LogStatus.FAIL, "Fields are not disabled " + logger.addScreenCapture(TS));
+			S_ASSERT.assertTrue(false);
+		}
+		return driver;
+	}
+
+
+	public static WebDriver validateHelpTextOnPage1(WebDriver driver, String path, ExtentTest logger, String fieldName,
+			String helpTxt, String excelName, String sheetName, int row)
+			throws InterruptedException, EncryptedDocumentException, InvalidFormatException, IOException {
+
+		excel(excelName);
+		int rowcount = excel.getColumnRowCount(sheetName, helpTxt);
+		rowcount = rowcount + 2;
+
+		for (int i = 2; i < rowcount; i++) {
+			String fieldValue = excel.getCellData(sheetName, helpTxt, i);
+			String fieldNames = excel.getCellData(sheetName, fieldName, i);
+
+			String strXpath = "//label[text()='" + fieldNames + "']//ancestor::div[@class='field-height']//lightning-helptext";
+			WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(1000));
+
+			WebElement element=wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(strXpath)));
+
+			UtilMethods.verifyElementPresent(logger, driver, driver.findElements(By.xpath(strXpath)));
+		
+			((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element);
+			UtilMethods.clickOn(logger, element, "Field Name Clicked");
+			Thread.sleep(2000);
+			List<WebElement> fields = driver.findElements(By.xpath("//div[text()='" + fieldValue + "']"));
+		
+
+			if (fields.size() > 0) {
+				logger.log(LogStatus.PASS, "Expected Help Text is Present " + fieldValue);
+				S_ASSERT.assertTrue(true);
+			} else {
+				TS = TakeScreenshot.CaptureScreen(driver, "validateHelpTextOnOpps");
+				logger.log(LogStatus.FAIL,
+						"Expected Help Text is not Present " + fieldValue + logger.addScreenCapture(TS));
+				S_ASSERT.assertTrue(false);
+			}
+		}
+		return driver;
+	}	
+	
+	public static WebDriver validateThePageName(WebDriver driver, String path, ExtentTest logger, String pageName,
+			String excelName, String sheetName, int row)
+			throws InterruptedException, EncryptedDocumentException, InvalidFormatException, IOException {
+
+		excel(excelName);
+
+		String pgName = excel.getCellData(sheetName, pageName, row);
+
+		List<WebElement> page = driver.findElements(By.xpath("//li[contains(@aria-label,'" + pgName + "Current.')]|//li[contains(@aria-label,'Current.')]"));
+		logger.log(LogStatus.INFO, "Page Name is correct " + page);
+        System.out.println("Page Name is correct" +page);
+        if (page.size() == 1) {
+			logger.log(LogStatus.PASS, "Page Name is correct" + pgName);
+			S_ASSERT.assertTrue(true);
+		} else {
+			TS = TakeScreenshot.CaptureScreen(driver, "validateThePageName");
+			logger.log(LogStatus.FAIL, "Page Name is not correct " + pgName + logger.addScreenCapture(TS));
+			S_ASSERT.assertTrue(false);
+		}
+		return driver;
+	}
+
+	public static WebDriver validateTextOnQualifyPg(WebDriver driver, String path, ExtentTest logger,
+			String headingQues, String secondaryQues, String excelName, String sheetName, int row)
+			throws InterruptedException, EncryptedDocumentException, InvalidFormatException, IOException {
+
+		Thread.sleep(15000);
+		excel(excelName);
+
+		int rowcount = excel.getColumnRowCount(sheetName, headingQues);
+		rowcount = rowcount + 2;
+		logger.log(LogStatus.INFO, "rowcount " + rowcount);
+		for (int i = 2; i < rowcount; i++) {
+
+			String textValue = excel.getCellData(sheetName, headingQues, i);
+			List<WebElement> fields = driver.findElements(
+					By.xpath("//div[@c-oppcreatedqclineitem_oppcreatedqclineitem]//span[text()='" + textValue + "']"));
+
+			if (fields.size() == 1) {
+				logger.log(LogStatus.PASS, " Correct headingQues is visible on UI on Qualify Page" + textValue);
+				S_ASSERT.assertTrue(true);
+			} else {
+				TS = TakeScreenshot.CaptureScreen(driver, "validateTextOnQualifyPg");
+				logger.log(LogStatus.FAIL,
+						"Correct headingQues is not visible on UI " + textValue + logger.addScreenCapture(TS));
+				S_ASSERT.assertTrue(false);
+			}
+		}
+
+		int rowcount2 = excel.getColumnRowCount(sheetName, secondaryQues);
+		rowcount2 = rowcount2 + 2;
+
+		for (int i = 2; i < rowcount2; i++) {
+
+			String textValue = excel.getCellData(sheetName, secondaryQues, i);
+			List<WebElement> fields = driver.findElements(
+					By.xpath("//div[@c-oppcreatedqclineitem_oppcreatedqclineitem]//span[text()='" + textValue + "']"));
+
+			if (fields.size() == 1) {
+				logger.log(LogStatus.PASS, " Correct secondaryQues is visible on UI on Qualify Page" + textValue);
+				S_ASSERT.assertTrue(true);
+			} else {
+				TS = TakeScreenshot.CaptureScreen(driver, "validateTextOnQualifyPg - secondaryQues");
+				logger.log(LogStatus.FAIL,
+						"Correct secondaryQues is not visible on UI " + textValue + logger.addScreenCapture(TS));
+				S_ASSERT.assertTrue(false);
+			}
+		}
+		return driver;
+	}
+
+	public static WebDriver validateResponseTextForDQC(WebDriver driver, String path, ExtentTest logger,
+			String headingQues, String responseHeading, String strong, String moderate, String weak, String excelName,
+			String sheetName, int row)
+			throws InterruptedException, EncryptedDocumentException, InvalidFormatException, IOException {
+
+		Thread.sleep(10000);
+		excel(excelName);
+
+		int rowcount = excel.getColumnRowCount(sheetName, headingQues);
+		rowcount = rowcount + 2;
+
+		for (int i = 2; i < rowcount; i++) {
+
+			String headingValue = excel.getCellData(sheetName, headingQues, i);
+			String responseValue = excel.getCellData(sheetName, responseHeading, i);
+			String strongValue = excel.getCellData(sheetName, strong, i);
+			String moderateValue = excel.getCellData(sheetName, moderate, i);
+			String weakvalue = excel.getCellData(sheetName, weak, i);
+
+			WebElement field1 = driver.findElement(By
+					.xpath("//div[@c-oppcreatedqclineitem_oppcreatedqclineitem]//span[text()='" + headingValue + "']"));
+
+			//UtilMethods.clickOn(logger, field1, "textValue");
+			UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, field1, "textValue");
+			Thread.sleep(5000);
+			// Validating Response Heading
+			List<WebElement> response = driver.findElements(By.xpath("//slot//div[text()='" + responseValue + "']"));
+			if (response.size() == 1) {
+				logger.log(LogStatus.PASS, " Correct responseHeading is visible on UI on Qualify Page " + responseValue );
+				S_ASSERT.assertTrue(true);
+			} else {
+				TS = TakeScreenshot.CaptureScreen(driver, "validateTextOnQualifyPg");
+				logger.log(LogStatus.FAIL,
+						"Correct responseHeading is not visible on UI " + responseValue + logger.addScreenCapture(TS));
+				S_ASSERT.assertTrue(false);
+			}
+
+			// Validating Strong text
+			List<WebElement> strongTxt = driver.findElements(By.xpath("//slot//div[text()='" + strongValue + "']"));
+			if (strongTxt.size() == 1) {
+				logger.log(LogStatus.PASS, " Correct strongTxt is visible on UI on Qualify Page " + strongValue);
+				S_ASSERT.assertTrue(true);
+			} else {
+				TS = TakeScreenshot.CaptureScreen(driver, "validateTextOnQualifyPg");
+				logger.log(LogStatus.FAIL,
+						"Correct strongTxt is not visible on UI " + strongValue + logger.addScreenCapture(TS));
+				S_ASSERT.assertTrue(false);
+			}
+
+			// Validating Moderate Text
+			List<WebElement> modTxt = driver.findElements(By.xpath("//slot//div[text()='" + moderateValue + "']"));
+			if (modTxt.size() == 1) {
+				logger.log(LogStatus.PASS, " Correct modTxt is visible on UI on Qualify Page " + moderateValue);
+				S_ASSERT.assertTrue(true);
+			} else {
+				TS = TakeScreenshot.CaptureScreen(driver, "validateTextOnQualifyPg");
+				logger.log(LogStatus.FAIL,
+						"Correct modTxt is not visible on UI " + moderateValue + logger.addScreenCapture(TS));
+				S_ASSERT.assertTrue(false);
+			}
+
+			// Validating Weak text
+
+			logger.log(LogStatus.INFO, "Weak value " + weakvalue);
+			if (weakvalue.equals(
+					"The client's budget and pricing expectations are not in line with the price we are proposing. We are not confident we can shift their expectations.")) {
+
+				String weakData[] = weakvalue.split("'");
+
+				logger.log(LogStatus.INFO, "Weak value 1 " + weakData[0]);
+				logger.log(LogStatus.INFO, "Weak value 2 " + weakData[1]);
+
+				List<WebElement> fields = driver.findElements(By.xpath("//slot//div[contains(text(),'" + weakData[0]
+						+ "') and contains(text(),'" + weakData[1] + "')]"));
+
+				if (fields.size() == 1) {
+					logger.log(LogStatus.PASS, " Correct weakvalue is visible on UI on Qualify Page" + weakvalue);
+					S_ASSERT.assertTrue(true);
+				} else {
+					TS = TakeScreenshot.CaptureScreen(driver, "validateTextOnQualifyPg");
+					logger.log(LogStatus.FAIL,
+							"Correct weakvalue is not visible on UI " + weakvalue + logger.addScreenCapture(TS));
+					S_ASSERT.assertTrue(false);
+				}
+			} else {
+				List<WebElement> weakTxt = driver.findElements(By.xpath("//slot//div[text()='" + weakvalue + "']"));
+				if (weakTxt.size() == 1) {
+					logger.log(LogStatus.PASS, " Correct weakvalue is visible on UI on Qualify Page");
+					S_ASSERT.assertTrue(true);
+				} else {
+					if(weakvalue.equals(
+							"The client has a negative view of our services, we are not well differentiated, and/or has had a bad experience with our work in the past. Or, we do not know.")) {
+					List<WebElement> weakTxt1 = driver.findElements(By.xpath("//slot//div[contains(text(),'The client has a negative view of our services, we are not well differentiated, and/or has had a bad experience with our work in the past.')]"));
+					if (weakTxt1.size() == 1) {
+						logger.log(LogStatus.PASS, " Correct weakvalue is visible on UI on Qualify Page" + weakvalue);
+						S_ASSERT.assertTrue(true);}}
+					else{
+					TS = TakeScreenshot.CaptureScreen(driver, "validateTextOnQualifyPg");
+					logger.log(LogStatus.FAIL,
+							"Correct weakvalue is not visible on UI " + weakvalue + logger.addScreenCapture(TS));
+					S_ASSERT.assertTrue(false);
+					}
+				}
+			}
+		}
+		Thread.sleep(5000);
+		return driver;
+	}
+
+	public static WebDriver validateHeadingsOnQualifyPg(WebDriver driver, String path, ExtentTest logger,
+			String heading, String overallHeading, String excelName, String sheetName, int row)
+			throws InterruptedException, EncryptedDocumentException, InvalidFormatException, IOException {
+
+		Thread.sleep(25000);
+		excel(excelName);
+
+		int rowcount = excel.getColumnRowCount(sheetName, heading);
+		System.out.println(rowcount);
+		rowcount = rowcount + 2;
+		logger.log(LogStatus.INFO, "The size of rowcount is: " + rowcount);
+		for (int i = 2; i < rowcount; i++) {
+
+			String textValue = excel.getCellData(sheetName, heading, i);
+			List<WebElement> fields = driver
+					.findElements(By.xpath("//div[@class='overallContainer']//h2[text()='" + textValue + "']"));
+            System.out.println(fields.size());
+			if (fields.size() == 1) {
+				logger.log(LogStatus.INFO, "The size of fields is: " + fields.size());
+				logger.log(LogStatus.PASS, " Correct Heading is visible on Qualify Page" + textValue);
+				S_ASSERT.assertTrue(true);
+			} else {
+				TS = TakeScreenshot.CaptureScreen(driver, "validateHeadingsOnQualifyPg");
+				logger.log(LogStatus.FAIL,
+						"Correct Heading is not visible on Qualify Page " + textValue + logger.addScreenCapture(TS));
+				S_ASSERT.assertTrue(false);
+			}
+		}
+
+		String textValue = excel.getCellData(sheetName, overallHeading, 2);
+		List<WebElement> fields = driver
+				.findElements(By.xpath("//div[@class='overallContainer']//span[text()='" + textValue + "']"));
+
+		if (fields.size() == 1) {
+			logger.log(LogStatus.PASS, " Correct overallHeading is visible on Qualify Page" + textValue);
+			S_ASSERT.assertTrue(true);
+		} else {
+			TS = TakeScreenshot.CaptureScreen(driver, "validateHeadingsOnQualifyPg" + textValue);
+			logger.log(LogStatus.FAIL,
+					"Correct overallHeading is not visible on Qualify Page " + textValue + logger.addScreenCapture(TS));
+			S_ASSERT.assertTrue(false);
+		}
+		return driver;
+	}
+	
+	public static WebDriver addISSafterOppCreate(WebDriver driver, String path, ExtentTest logger,
+			String issValue, String overallHeading, String excelName, String sheetName, int row)
+			throws InterruptedException, EncryptedDocumentException, InvalidFormatException, IOException {
+
+		Thread.sleep(25000);
+		excel(excelName);
+
+		int rowcount = excel.getColumnRowCount(sheetName, issValue);
+		
+		for (int i = 0; i < rowcount; i++) 
+		{
+
+			String textValue = excel.getCellData(sheetName, issValue, i);
+			List<WebElement> fields = driver
+					.findElements(By.xpath("//div[@class='overallContainer']//h2[text()='" + textValue + "']"));
+
+			if (fields.size() == 1) {
+				logger.log(LogStatus.PASS, " Correct Heading is visible on Qualify Page" + textValue);
+				S_ASSERT.assertTrue(true);
+			} else {
+				TS = TakeScreenshot.CaptureScreen(driver, "validateHeadingsOnQualifyPg");
+				logger.log(LogStatus.FAIL,
+						"Correct Heading is not visible on Qualify Page " + textValue + logger.addScreenCapture(TS));
+				S_ASSERT.assertTrue(false);
+			}
+		}
+
+		String textValue = excel.getCellData(sheetName, overallHeading, 2);
+		List<WebElement> fields = driver
+				.findElements(By.xpath("//div[@class='overallContainer']//span[text()='" + textValue + "']"));
+
+		if (fields.size() == 1) {
+			logger.log(LogStatus.PASS, " Correct overallHeading is visible on Qualify Page" + textValue);
+			S_ASSERT.assertTrue(true);
+		} else {
+			TS = TakeScreenshot.CaptureScreen(driver, "validateHeadingsOnQualifyPg" + textValue);
+			logger.log(LogStatus.FAIL,
+					"Correct overallHeading is not visible on Qualify Page " + textValue + logger.addScreenCapture(TS));
+			S_ASSERT.assertTrue(false);
+		}
+		return driver;
+	}
+
+    //Created by Neeraja
+	public static WebDriver CreateDuplicateTab(WebDriver driver, ExtentTest logger) throws InterruptedException {
+
+		String currentURL = driver.getCurrentUrl();
+		((JavascriptExecutor) driver).executeScript("window.open('" + currentURL + "');");
+		Thread.sleep(2000);
+		logger.log(LogStatus.PASS, "Duplicate tab is created");
+		System.out.println("Duplicate tab is created");
+		return driver; 
+	}
+		//Created by Neeraja
+		public static WebDriver validateArrowsEnabled(WebDriver driver, String path, ExtentTest logger,
+				WebElement forwardArrow,WebElement BackwardArrow, String sheetName, int row) throws InterruptedException {
+
+			if(forwardArrow.isEnabled() && BackwardArrow.isEnabled()) {	
+				logger.log(LogStatus.PASS, "Both Arrows are enabled" );
+				S_ASSERT.assertTrue(true);
+			}
+			else {
+				String TS = TakeScreenshot.CaptureScreen(driver, "Both Arrows are not present");
+				logger.log(LogStatus.FAIL, "Both Arrows are not present" + logger.addScreenCapture(TS));
+				S_ASSERT.assertTrue(false);	 
+			}
+			return driver;
+		}
+	
+		//Created by Neeraja
+		public static WebDriver validateCRDisabled(WebDriver driver, String path, ExtentTest logger, String excelName,
+				String sheetName, int row) throws InterruptedException {
+
+			List<WebElement> btnSize = driver
+					.findElements(By.xpath("//button[@disabled]//following::label[text()='Customer Relationship']"));
+			int size = btnSize.size();
+
+			if (size > 0) {
+				logger.log(LogStatus.PASS, "CR field Disabled");
+				S_ASSERT.assertTrue(true);
+			} else {
+				TS = TakeScreenshot.CaptureScreen(driver, "validateCRFieldDisabled");
+				logger.log(LogStatus.FAIL, "CR field enabled" + logger.addScreenCapture(TS));
+				S_ASSERT.assertTrue(false);
+			}
+			return driver;
+		}
+
+		public static WebDriver validateOnsaveMsg(WebDriver driver, String path, ExtentTest logger,
+				String errorMsg, String excelName, String sheetName, int row) throws InterruptedException {
+
+			excel(excelName);
+
+			String ErrorMsg;
+			Thread.sleep(3000);
+			ErrorMsg = excel.getCellData(sheetName, errorMsg, row);
+
+			List<WebElement> errorMessage1 = driver.findElements(By.xpath("//div[text()='" + ErrorMsg + "']"));
+
+			int size = errorMessage1.size();
+
+			if (size > 0) {
+				logger.log(LogStatus.PASS, "On-save validation is present");
+				S_ASSERT.assertTrue(true);
+			} else {
+				TS = TakeScreenshot.CaptureScreen(driver, "On-save validation is not present");
+				logger.log(LogStatus.FAIL, "On-save validation is not present" + logger.addScreenCapture(TS));
+				S_ASSERT.assertTrue(false);
+			}
+
+			return driver;
+		}
+		public static WebDriver RemoveISS(WebDriver driver, String path, ExtentTest logger, String excelName,
+				String sheetName, int row) throws InterruptedException {
+
+			List<WebElement> removeISS= driver
+					.findElements(By.xpath("//span[contains(@aria-label,'remove')]"));
+
+			if (removeISS.size() == 1) {
+				UtilMethods.clickOn(logger, removeISS.get(0), "Remove ISS");
+				logger.log(LogStatus.PASS, "ISS values deleted");
+				S_ASSERT.assertTrue(true);
+			} else {
+				TS = TakeScreenshot.CaptureScreen(driver, "Remove ISS");
+				logger.log(LogStatus.FAIL, "ISS is not deleted" + logger.addScreenCapture(TS));
+				S_ASSERT.assertTrue(false);
+			}
+
+            return driver;
+		}
+
+	
+		public static WebDriver ValidateISSIsBlank(WebDriver driver, String path, ExtentTest logger,
+				String charAttribute,String excelName, String sheetName, int row)
+						throws InterruptedException, IOException, EncryptedDocumentException, InvalidFormatException {
+					excel(excelName);
+					int rowCount = excel.getColumnRowCount(sheetName, charAttribute);
+					
+					System.out.println("rowCount is "+rowCount);
+					logger.log(LogStatus.INFO, "Total number of rows:" + rowCount);
+					MethodFactory.clickTheRespectiveButtonByJavaScriptExecutor(driver,  path, logger,
+							rt_OpportunityClonePage.attributesLinkOnOppPage, "Attributes page");
+					Thread.sleep(2000);
+					MethodFactory.switchBetweenTabs(driver, path, logger, 1);
+					
+					UtilMethods.waitTillElementIsVisible(logger, driver, cancelButtonOnAttributePage);
+
+					for (int i = 0; i < rowCount; i++) {
+						String charAttributeData = excel.getCellData(sheetName, charAttribute, row);
+					    String CategoryVar=null;
+					    
+						//For finding the category name we are writing this If condition
+						if (charAttributeData.equalsIgnoreCase("Industry Offerings")||charAttributeData.equalsIgnoreCase("Industry Sub Segment")) {
+							CategoryVar="Industry";
+							System.out.println("CategoryVar is "+CategoryVar);
+						}else if (charAttributeData.equalsIgnoreCase("Accenture Products, Platforms & Assets")||charAttributeData.equalsIgnoreCase("Alliances")||charAttributeData.equalsIgnoreCase("Blockchain")||charAttributeData.equalsIgnoreCase("CEO & Enterprise Strategy")||charAttributeData.equalsIgnoreCase("Cloud")||charAttributeData.equalsIgnoreCase("Data & AI")||charAttributeData.equalsIgnoreCase("Mergers & Acquisitions")||charAttributeData.equalsIgnoreCase("Metaverse")||charAttributeData.contains("SSG")) {
+							
+							CategoryVar="Cross Services";
+							System.out.println("CategoryVar is "+CategoryVar);
+						}else if (charAttributeData.equalsIgnoreCase("Industry X")||charAttributeData.equalsIgnoreCase("Song")||charAttributeData.equalsIgnoreCase("Security")){
+							
+							CategoryVar="Services";
+							System.out.println("CategoryVar is "+CategoryVar);
+						}else if (charAttributeData.equalsIgnoreCase("CFO & Enterprise Value")||charAttributeData.equalsIgnoreCase("Supply Chain & Operations")||charAttributeData.equalsIgnoreCase("Talent & Organization")||charAttributeData.equalsIgnoreCase("Tech Strategy & Advisory")||charAttributeData.equalsIgnoreCase("Sustainability Services")){
+							
+							CategoryVar="Enterprise Functions";
+							System.out.println("CategoryVar is "+CategoryVar);
+						}else if (charAttributeData.equalsIgnoreCase("Solutions")||charAttributeData.equalsIgnoreCase("Assets")){	
+							
+							CategoryVar="Solutions & Assets";
+							System.out.println("CategoryVar is "+CategoryVar);
+						}
+						
+			            String strXpath1 = "//div[text()='" + CategoryVar+ "']";
+
+						UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger,
+								driver.findElement(By.xpath(strXpath1)), CategoryVar);
+						
+						if (ExpandAllButton.size()==1) {
+							UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, ExpandAllButton.get(0),
+									charAttributeData + " Expand All");	
+							Thread.sleep(3000);
+						}
+						
+   List<WebElement> crossIconAttributePage1 = driver.findElements(By.xpath(
+			"//div[contains(text(),'" +charAttributeData+ "')]/preceding-sibling::lightning-icon/ancestor::details//span[contains(@class,'remove')]"));
+					
+	if (crossIconAttributePage1.size() ==0) {
+      logger.log(LogStatus.PASS, "ISS values deleted");
+		S_ASSERT.assertTrue(true);
+	} else {
+		TS = TakeScreenshot.CaptureScreen(driver, "Attribute is present");
+		logger.log(LogStatus.FAIL, "Attribute is present" + logger.addScreenCapture(TS));
+		S_ASSERT.assertTrue(false);
+	}}
+    return driver;
+   
+    		
+}
+		public static WebDriver validateSellingCountryValue(WebDriver driver, String path, ExtentTest logger,
+				String fieldValue,String excelName, String sheetName, int row) throws InterruptedException {
+ 
+			excel(excelName);
+ 
+			String fieldValueData = excel.getCellData(sheetName, fieldValue, row);
+		
+			WebElement SellingCountry1 = driver.findElement(By.xpath("//label[text()='Selling Country/Location']//ancestor::lightning-picklist//span[contains(text(),'" + fieldValueData+ "')]"));
+        String UIValue = SellingCountry1.getText();
+ 
+ 
+			if (UIValue.equals(fieldValueData)) {
+				String TS = TakeScreenshot.CaptureScreen(driver, "validateSellingCountryFieldValue");
+				logger.log(LogStatus.PASS, "Field Value is as expected:--excel data is:--"
+						+ fieldValueData + "---UI Data is :--" + SellingCountry1.getText()
+						+ logger.addScreenCapture(TS));
+				System.out.println("PASS--->Field Value is as expected:--excel data is:--"
+						+ fieldValueData + "---UI Data is :--" + SellingCountry1.getText()+"---");
+ 
+				S_ASSERT.assertTrue(true);
+			} else {
+				
+				 logger.log(LogStatus.FAIL,
+			                "Field value is not as expected: --excel data is:--"
+			                        + fieldValueData + "---UI Data is :--" + SellingCountry1.getText()
+			                        + logger.addScreenCapture(TS));
+			        System.out.println("Fail--->Field Value is not as expected:--:--excel data is:--"
+			                + fieldValueData + "---UI Data is :--" + SellingCountry1.getText() + "---");
+ 
+				S_ASSERT.assertTrue(false);
+			}
+ 
+			return driver;
+		}}
+
+