|
@@ -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;
|
|
|
+ }}
|
|
|
+
|
|
|
+
|