package automation_admin; 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 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 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 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 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 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 errorMessage1 = driver.findElements(By.xpath("//span[contains(text(),'" + ErrorMsg + "')]")); // // int size = errorMessage1.size(); List 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 errorMessage1 = driver.findElements(By.xpath("//span[contains(text(),'" + ErrorMsg + "')]")); List 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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; }}