RT_OppCreatePage.java 76 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841
  1. package automation_admin;
  2. import java.io.File;
  3. import java.io.IOException;
  4. import java.time.Duration;
  5. import java.util.ArrayList;
  6. import java.util.List;
  7. import java.util.Set;
  8. import org.apache.poi.EncryptedDocumentException;
  9. import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
  10. import org.openqa.selenium.By;
  11. import org.openqa.selenium.JavascriptExecutor;
  12. import org.openqa.selenium.Keys;
  13. import org.openqa.selenium.WebDriver;
  14. import org.openqa.selenium.WebElement;
  15. import org.openqa.selenium.WindowType;
  16. import org.openqa.selenium.interactions.Actions;
  17. import org.openqa.selenium.support.FindBy;
  18. import org.openqa.selenium.support.ui.ExpectedConditions;
  19. import org.openqa.selenium.support.ui.WebDriverWait;
  20. import org.testng.annotations.Test;
  21. import org.testng.asserts.SoftAssert;
  22. import com.Utility.MethodFactory;
  23. import com.Utility.ReadExcel;
  24. import com.Utility.TakeScreenshot;
  25. import com.Utility.TestNGCreation;
  26. import com.Utility.UtilMethods;
  27. import com.relevantcodes.extentreports.ExtentTest;
  28. import com.relevantcodes.extentreports.LogStatus;
  29. public class RT_OppCreatePage extends OpportunityElementFactory {
  30. static String data;
  31. static File file;
  32. static ReadExcel excel;
  33. public static ReadExcel excel(String excelName) {
  34. file = new File(System.getProperty("user.dir") + "/ExcelFiles/" + excelName + ".xlsx");
  35. excel = new ReadExcel(file);
  36. return excel;
  37. }
  38. public static WebDriver fillFieldsOnOppCreatePage(WebDriver driver, String path, ExtentTest logger, String oppName,
  39. String crID, String closeDt, String sellingCountryval, String localCurrencyVal,
  40. String IndustrySubSegmentValue, String excelName, String sheetName, int row) throws InterruptedException {
  41. excel(excelName);
  42. String opportunityName;
  43. String accountID;
  44. String closeDate;
  45. String sellingCountry;
  46. String localCurrency;
  47. String IndustrySubSegment;
  48. opportunityName = excel.getCellData(sheetName, oppName, row);
  49. accountID = excel.getCellData(sheetName, crID, row);
  50. closeDate = excel.getCellData(sheetName, closeDt, row);
  51. logger.log(LogStatus.INFO, "closeDate from excel is:" + closeDate);
  52. sellingCountry = excel.getCellData(sheetName, sellingCountryval, row);
  53. localCurrency = excel.getCellData(sheetName, localCurrencyVal, row);
  54. IndustrySubSegment = excel.getCellData(sheetName, IndustrySubSegmentValue, row);
  55. Thread.sleep(4000);
  56. // Setting Value for Opportunity Name field
  57. UtilMethods.waitTillElementIsVisible(logger, driver, opportunityNameOnCreateOppPage);
  58. UtilMethods.setText(logger, opportunityNameOnCreateOppPage, opportunityName);
  59. // Setting Value for Customer relationship field
  60. Thread.sleep(4000);
  61. UtilMethods.waitTillElementIsVisible(logger, driver, customerRelationshipOnCreateOppPage);
  62. Thread.sleep(4000);
  63. UtilMethods.setText(logger, customerRelationshipOnCreateOppPage, accountID);
  64. Thread.sleep(4000);
  65. UtilMethods.clickEnter(logger, customerRelationshipOnCreateOppPage, "Customer Relationship");
  66. Thread.sleep(4000);
  67. // UtilMethods.clickEnter(logger, customerRelationshipOnCreateOppPage, "Customer Relationship");
  68. // Thread.sleep(3000);
  69. UtilMethods.waitTillElementIsVisible(logger, driver, RT_WinLossSurveyFindingsPage.cRSelection);
  70. Thread.sleep(3000);
  71. UtilMethods.clickOn(logger, cRSelection, "CR");
  72. Thread.sleep(3000);
  73. // Setting Value for Close Date
  74. UtilMethods.waitTillElementIsVisible(logger, driver, closeDateOnCreateOppPage);
  75. Thread.sleep(3000);
  76. UtilMethods.setText(logger, closeDateOnCreateOppPage, closeDate);
  77. Thread.sleep(5000);
  78. JavascriptExecutor executor = (JavascriptExecutor) driver;
  79. WebElement element1 = driver.findElement(
  80. By.xpath("//label[text()='Selling Country/Location']/ancestor::lightning-combobox//input | //label[text()='Selling Country/Location']/ancestor::lightning-combobox//button[@name='SellingCountry__c']"));
  81. Thread.sleep(2000);
  82. UtilMethods.waitTillElementIsVisible(logger, driver, element1);
  83. UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, element1, "Selling Country");
  84. WebElement selectionElement = driver.findElement(By
  85. .xpath("//label[text()='Selling Country/Location']//ancestor::div[1]//div[@role='listbox']//span/span[text()='"
  86. + sellingCountry + "']"));
  87. executor.executeScript("arguments[0].click();", selectionElement);
  88. // local currency
  89. WebElement element2 = driver
  90. .findElement(By.xpath("//label[text()='Local Currency']/ancestor::lightning-combobox//button"));
  91. UtilMethods.waitTillElementIsVisible(logger, driver, element2);
  92. UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, element2, "Local Currency");
  93. WebElement selectionElement1 = driver.findElement(
  94. By.xpath("//label[text()='Local Currency']//ancestor::div[1]//div[@role='listbox']//span/span[text()='"
  95. + localCurrency + "']"));
  96. executor.executeScript("arguments[0].click();", selectionElement1);
  97. UtilMethods.waitTillElementIsVisible(logger, driver, industrySubSegmentOnCreateOppPage);
  98. UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, industrySubSegmentOnCreateOppPage,
  99. "ISS");
  100. Thread.sleep(2000);
  101. if (IndustrySubSegment.equals("H&PS HEALTH-COMM'L PAYER")
  102. || IndustrySubSegment.equals("H&PS HEALTH-COMM'L PROVIDER")) {
  103. String IndustrySubSegmentData[] = IndustrySubSegment.split("'");
  104. UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger,
  105. driver.findElement(By
  106. .xpath("//span[text()='Industry Sub Segment']/../../following-sibling::div//div[contains(text(),'"
  107. + IndustrySubSegmentData[0] + "') and contains(text(),'" + IndustrySubSegmentData[1]
  108. + "')]")),
  109. "industry sub segment");
  110. } else {
  111. UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger,
  112. driver.findElement(
  113. By.xpath("//span[text()='Industry Sub Segment']/../../following-sibling::div//div[text()='"
  114. + IndustrySubSegment + "']")),
  115. "industry sub segment");
  116. }
  117. return driver;
  118. }
  119. public static WebDriver addFinancials(WebDriver driver, String path, ExtentTest logger, String SG, String SSG,
  120. String SR, String SSGOff, String excelName, String sheetName, int row) throws InterruptedException {
  121. Thread.sleep(5000);
  122. excel(excelName);
  123. if (clearSSG.size() > 0 || deleteSSG.size() > 0) {
  124. //UtilMethods.clickOn(logger, ssgAddBtn, "ssgAdd Button");
  125. MethodFactory.clickTheRespectiveButtonByJavaScriptExecutor(driver, path, logger,
  126. ssgAddBtn, "SSG Add Button");
  127. }
  128. String serviceGroup = excel.getCellData(sheetName, SG, row);
  129. String subServiceGroup = excel.getCellData(sheetName, SSG, row);
  130. String serviceRevenue = excel.getCellData(sheetName, SR, row);
  131. String ssgOff = excel.getCellData(sheetName, SSGOff, row);
  132. String[] ssgOfflist = ssgOff.split(";");
  133. int ssgListSize = ssgOfflist.length;
  134. logger.log(LogStatus.INFO, "ssgListSize " + ssgListSize);
  135. row = row - 1;
  136. // Setting Value for Service Group
  137. JavascriptExecutor executor = (JavascriptExecutor) driver;
  138. WebElement element1 = driver.findElement(
  139. By.xpath("(//label[text()='Service Group']/ancestor::lightning-combobox//input)[" + row + "] | (//label[text()='Service Group']/ancestor::lightning-combobox//button)[" + row + "]"));
  140. Thread.sleep(2000);
  141. UtilMethods.waitTillElementIsVisible(logger, driver, element1);
  142. UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, element1, "SG");
  143. WebElement selectionElement1 = driver.findElement(
  144. By.xpath("(//label[text()='Service Group']//ancestor::div[1]//div[@role='listbox']//span/span[text()='"
  145. + serviceGroup + "'])[" + row + "]"));
  146. executor.executeScript("arguments[0].click();", selectionElement1);
  147. Thread.sleep(5000);
  148. // Setting Value for SSG
  149. WebElement element2 = driver.findElement(
  150. By.xpath("(//label[text()='Sub Service Group']/ancestor::lightning-combobox//input)[" + row + "] | (//label[text()='Sub Service Group']/ancestor::lightning-combobox//button)[" + row + "]"));
  151. Thread.sleep(2000);
  152. UtilMethods.clickOn(logger, element2, "SSG inbox");
  153. UtilMethods.waitTillElementIsVisible(logger, driver, element1);
  154. UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, element1, "SSG");
  155. List<WebElement> selectionElement2 = driver.findElements(By
  156. .xpath("//label[text()='Sub Service Group']//ancestor::div[1]//div[@role='listbox']//span/span[text()='"
  157. + subServiceGroup + "']"));
  158. executor.executeScript("arguments[0].click();", selectionElement2.get(selectionElement2.size()-1));
  159. Thread.sleep(5000);
  160. // Setting Value for Services Revenue
  161. WebElement element3 = driver.findElement(By
  162. .xpath("(//label[text()='Services Revenue']//ancestor::div[@class='field-height set-background']//input)["
  163. + row + "] | (//label[text()='Services Revenue']//ancestor::div[@class='field-height set-background']//button)["
  164. + row + "]"));
  165. UtilMethods.waitTillElementIsVisible(logger, driver, srTextBox);
  166. UtilMethods.setText(logger, element3, serviceRevenue);
  167. Thread.sleep(5000);
  168. // Setting Value for SSG Offerings
  169. if(!ssgOfflist[0].equals("NA")) {
  170. for (int i = 0; i < ssgListSize; i++) {
  171. logger.log(LogStatus.INFO, "ssgOfflist " + ssgOfflist[i]);
  172. logger.log(LogStatus.INFO, "row " + row);
  173. Thread.sleep(5000);
  174. String SSGOff1 = ssgOfflist[i];
  175. WebElement element4 = driver.findElement(By
  176. .xpath("(//span[text()='SSG Offerings']//ancestor::div[@class='slds slds-form-element large']//input)["
  177. + row + "] | (//span[text()='SSG Offerings']//ancestor::div[@class='slds slds-form-element large']//button)["
  178. + row + "]"));
  179. Thread.sleep(5000);
  180. UtilMethods.clickOn(logger, element4, "element4");
  181. UtilMethods.setText(logger, element4, SSGOff1);
  182. logger.log(LogStatus.INFO, "row " + row);
  183. Thread.sleep(5000);
  184. UtilMethods.clickEnter(logger, element4, "ssgTextBox");
  185. UtilMethods.waitTillElementIsVisible(logger, driver, element4);
  186. Thread.sleep(4000);
  187. }
  188. }
  189. return driver;
  190. }
  191. public static WebDriver updateSSGOfferings(WebDriver driver, String path, ExtentTest logger, String SSGOff,
  192. String excelName, String sheetName, int row) throws InterruptedException {
  193. Thread.sleep(5000);
  194. excel(excelName);
  195. String ssgOff = excel.getCellData(sheetName, SSGOff, row);
  196. logger.log(LogStatus.INFO, "ssgOfflist " + ssgOff);
  197. String[] ssgOfflist = ssgOff.split(";");
  198. int ssgListSize = ssgOfflist.length;
  199. logger.log(LogStatus.INFO, "ssgListSize " + ssgListSize);
  200. row = row - 1;
  201. // Setting Value for SSG Offerings
  202. for (int i = 0; i < ssgListSize; i++) {
  203. logger.log(LogStatus.INFO, "ssgOfflist " + ssgOfflist[i]);
  204. logger.log(LogStatus.INFO, "row " + row);
  205. String SSGOff1 = ssgOfflist[i];
  206. WebElement element4 = driver.findElement(By
  207. .xpath("(//span[text()='SSG Offerings']//ancestor::div[@class='slds slds-form-element large']//input)["
  208. + row + "]"));
  209. Thread.sleep(5000);
  210. //UtilMethods.clickOn(logger, element4, "element4");
  211. UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, element4, "element4");
  212. UtilMethods.setText(logger, element4, SSGOff1);
  213. logger.log(LogStatus.INFO, "row " + row);
  214. Thread.sleep(5000);
  215. UtilMethods.clickEnter(logger, element4, "ssgTextBox");
  216. Thread.sleep(4000);
  217. }
  218. return driver;
  219. }
  220. public static WebDriver navigateToOppCreatePage(WebDriver driver, String path, ExtentTest logger)
  221. throws InterruptedException {
  222. Thread.sleep(4000);
  223. MethodFactory.clickTheRespectiveButtonByJavaScriptExecutor(driver, path, logger, Opptab, "Opp Tab" );
  224. Thread.sleep(3000);
  225. UtilMethods.waitTillElementIsVisible(logger, driver, newButton);
  226. Thread.sleep(3000);
  227. UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver,logger, newButton, "New Button" );
  228. Thread.sleep(5000);
  229. return driver;
  230. }
  231. public static WebDriver deleteTheSSG(WebDriver driver, String path, ExtentTest logger, String excelName,
  232. String sheetName, int row) throws InterruptedException {
  233. List<WebElement> delSSG = driver
  234. .findElements(By.xpath("//button[@title='Delete SSG']//following::button[@name='3']"));
  235. if (delSSG.size() == 1) {
  236. UtilMethods.clickOn(logger, delSSG.get(0), "deleteSSGbtn");
  237. logger.log(LogStatus.PASS, "Last Record Deleted");
  238. S_ASSERT.assertTrue(true);
  239. } else {
  240. TS = TakeScreenshot.CaptureScreen(driver, "deleteTheSSG");
  241. logger.log(LogStatus.FAIL, "Last Record is not deleted" + logger.addScreenCapture(TS));
  242. S_ASSERT.assertTrue(false);
  243. }
  244. Thread.sleep(2000);
  245. UtilMethods.clickOn(logger, oKButtonSubmitForApproval, "oKButtonSubmitForApproval");
  246. Thread.sleep(2000);
  247. return driver;
  248. }
  249. public static WebDriver updateTheRevenue(WebDriver driver, String path, ExtentTest logger, String SR,
  250. String excelName, String sheetName, int row) throws InterruptedException {
  251. WebElement errorBox = driver.findElement(By.xpath(
  252. "//div[text()='ERROR: Invalid Revenue']//ancestor::div[@class='field-height set-background']//input"));
  253. String serviceRevenue = excel.getCellData(sheetName, SR, row);
  254. UtilMethods.clickOn(logger, errorBox, "errorBox");
  255. UtilMethods.setText(logger, errorBox, serviceRevenue);
  256. return driver;
  257. }
  258. public static WebDriver updateTheSG(WebDriver driver, String path, ExtentTest logger, String SG, String excelName,
  259. String sheetName, int row) throws InterruptedException {
  260. String serviceGrp = excel.getCellData(sheetName, SG, row);
  261. // Setting Value for Service Group
  262. JavascriptExecutor executor = (JavascriptExecutor) driver;
  263. Thread.sleep(2000);
  264. WebElement selectionElement1 = driver.findElement(
  265. By.xpath("(//label[text()='Service Group']//ancestor::div[1]//div[@role='listbox']//span/span[text()='"
  266. + serviceGrp + "'])[4]"));
  267. executor.executeScript("arguments[0].click();", selectionElement1);
  268. UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, selectionElement1, "SG");
  269. Thread.sleep(5000);
  270. return driver;
  271. }
  272. public static WebDriver updateRevenueAfterDQCFilled(WebDriver driver, String path, ExtentTest logger, String SR,
  273. String excelName, String sheetName, int row) throws InterruptedException {
  274. WebElement inbox = driver.findElement(By.xpath("//div[@class='field-height set-background']//input"));
  275. String serviceRevenue = excel.getCellData(sheetName, SR, row);
  276. UtilMethods.clickOn(logger, inbox, "inbox");
  277. UtilMethods.setText(logger, inbox, serviceRevenue);
  278. return driver;
  279. }
  280. public static WebDriver includeMultipleISS(WebDriver driver, String path, ExtentTest logger,
  281. String IndustrySubSegmentValue, String excelName, String sheetName, int row)
  282. throws InterruptedException, EncryptedDocumentException, InvalidFormatException, IOException {
  283. excel(excelName);
  284. Thread.sleep(4000);
  285. UtilMethods.waitTillElementIsVisible(logger, driver, industrySubSegmentOnCreateOppPage);
  286. int rowcount = excel.getColumnRowCount(sheetName, IndustrySubSegmentValue);
  287. rowcount = rowcount + 2;
  288. logger.log(LogStatus.INFO, "row count " + rowcount);
  289. for (int i = 2; i < rowcount; i++) {
  290. String IndustrySubSegment = excel.getCellData(sheetName, IndustrySubSegmentValue, i);
  291. //extra added
  292. System.out.println("picklist count "+ rowcount);
  293. UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, industrySubSegmentOnCreateOppPage,
  294. IndustrySubSegment);
  295. Thread.sleep(2000);
  296. logger.log(LogStatus.INFO, "fieldValue " + IndustrySubSegment);
  297. if (IndustrySubSegment.equals("H&PS HEALTH-COMM'L PAYER")
  298. || IndustrySubSegment.equals("H&PS HEALTH-COMM'L PROVIDER")) {
  299. String IndustrySubSegmentData[] = IndustrySubSegment.split("'");
  300. UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger,
  301. driver.findElement(By
  302. .xpath("//span[text()='Industry Sub Segment']/../../following-sibling::div//div[contains(text(),'"
  303. + IndustrySubSegmentData[0] + "') and contains(text(),'"
  304. + IndustrySubSegmentData[1] + "')]")),
  305. "industry sub segment");
  306. } else {
  307. UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger,
  308. driver.findElement(By
  309. .xpath("//span[text()='Industry Sub Segment']/../../following-sibling::div//div[text()='"+ IndustrySubSegment + "']")),
  310. "industry sub segment");
  311. }
  312. }
  313. return driver;
  314. }
  315. public static WebDriver createOppFromCR(WebDriver driver, String path, ExtentTest logger, String oppName,
  316. String closeDt,String sellingCountryval, String localCurrencyVal, String IndustrySubSegmentValue, String excelName, String sheetName,
  317. int row) throws InterruptedException {
  318. excel(excelName);
  319. String opportunityName;
  320. String closeDate;
  321. String localCurrency;
  322. String sellingCountry;
  323. String IndustrySubSegment;
  324. opportunityName = excel.getCellData(sheetName, oppName, row);
  325. closeDate = excel.getCellData(sheetName, closeDt, row);
  326. localCurrency = excel.getCellData(sheetName, localCurrencyVal, row);
  327. sellingCountry = excel.getCellData(sheetName, sellingCountryval, row);
  328. IndustrySubSegment = excel.getCellData(sheetName, IndustrySubSegmentValue, row);
  329. UtilMethods.waitTillElementIsVisible(logger, driver, oppRelatedList);
  330. //UtilMethods.clickOn(logger, oppRelatedList, "oppRelatedList is clicked");
  331. UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, oppRelatedList, "oppRelatedList is clicked");
  332. Thread.sleep(5000);
  333. UtilMethods.waitTillElementIsVisible(logger, driver, newButton1);
  334. UtilMethods.clickOn(logger, newButton1, "newButton is clicked");
  335. Thread.sleep(5000);
  336. UtilMethods.waitTillElementIsVisible(logger, driver, opportunityNameOnCreateOppPage);
  337. UtilMethods.setText(logger, opportunityNameOnCreateOppPage, opportunityName);
  338. Thread.sleep(5000);
  339. JavascriptExecutor executor = (JavascriptExecutor) driver;
  340. WebElement element2 = driver
  341. .findElement(By.xpath("//label[text()='Local Currency']/ancestor::lightning-combobox//button"));
  342. UtilMethods.waitTillElementIsVisible(logger, driver, element2);
  343. UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, element2, "Local Currency");
  344. WebElement selectionElement1 = driver.findElement(
  345. By.xpath("//label[text()='Local Currency']//ancestor::div[1]//div[@role='listbox']//span/span[text()='" + localCurrency + "']"));
  346. executor.executeScript("arguments[0].click();", selectionElement1);
  347. UtilMethods.waitTillElementIsVisible(logger, driver, closeDateOnCreateOppPage);
  348. UtilMethods.setText(logger, closeDateOnCreateOppPage, closeDate);
  349. WebElement element1 = driver.findElement(
  350. By.xpath("//label[text()='Selling Country/Location']/ancestor::lightning-combobox//input | //label[text()='Selling Country/Location']/ancestor::lightning-combobox//button[@name='SellingCountry__c']"));
  351. Thread.sleep(2000);
  352. UtilMethods.waitTillElementIsVisible(logger, driver, element1);
  353. UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, element1, "Seling Country");
  354. WebElement selectionElement = driver.findElement(By
  355. .xpath("//label[text()='Selling Country/Location']//ancestor::div[1]//div[@role='listbox']//span/span[text()='"
  356. + sellingCountry + "']"));
  357. executor.executeScript("arguments[0].click();", selectionElement);
  358. Thread.sleep(5000);
  359. UtilMethods.waitTillElementIsVisible(logger, driver, industrySubSegmentOnCreateOppPage);
  360. UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, industrySubSegmentOnCreateOppPage,
  361. "ISS");
  362. Thread.sleep(5000);
  363. if (IndustrySubSegment.equals("H&PS HEALTH-COMM'L PAYER")
  364. || IndustrySubSegment.equals("H&PS HEALTH-COMM'L PROVIDER")) {
  365. String IndustrySubSegmentData[] = IndustrySubSegment.split("'");
  366. UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger,
  367. driver.findElement(By
  368. .xpath("//span[text()='Industry Sub Segment']/../../following-sibling::div//div[contains(text(),'"
  369. + IndustrySubSegmentData[0] + "') and contains(text(),'" + IndustrySubSegmentData[1]
  370. + "')]")),
  371. "industry sub segment");
  372. } else {
  373. UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger,
  374. driver.findElement(
  375. By.xpath("//span[text()='Industry Sub Segment']/../../following-sibling::div//div[text()='"
  376. + IndustrySubSegment + "']")),
  377. "industry sub segment");
  378. }
  379. /*UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, industrySubSegmentOnCreateOppPage,
  380. "ISS");*/
  381. return driver;
  382. }
  383. // new method for close date
  384. public static WebDriver createOppFromCRDate(WebDriver driver, String path, ExtentTest logger, String oppName,
  385. String closeDt, String localCurrencyVal, String IndustrySubSegmentValue, String excelName, String sheetName,
  386. int row) throws InterruptedException {
  387. excel(excelName);
  388. String opportunityName;
  389. String closeDate;
  390. String localCurrency;
  391. String IndustrySubSegment;
  392. opportunityName = excel.getCellData(sheetName, oppName, row);
  393. closeDate = excel.getCellData(sheetName, closeDt, row);
  394. localCurrency = excel.getCellData(sheetName, localCurrencyVal, row);
  395. IndustrySubSegment = excel.getCellData(sheetName, IndustrySubSegmentValue, row);
  396. UtilMethods.waitTillElementIsVisible(logger, driver, oppRelatedList);
  397. //UtilMethods.clickOn(logger, oppRelatedList, "oppRelatedList is clicked");
  398. UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, oppRelatedList, "oppRelatedList is clicked");
  399. Thread.sleep(5000);
  400. UtilMethods.waitTillElementIsVisible(logger, driver, newButton1);
  401. UtilMethods.clickOn(logger, newButton1, "newButton is clicked");
  402. Thread.sleep(5000);
  403. UtilMethods.waitTillElementIsVisible(logger, driver, opportunityNameOnCreateOppPage);
  404. UtilMethods.setText(logger, opportunityNameOnCreateOppPage, opportunityName);
  405. Thread.sleep(5000);
  406. JavascriptExecutor executor = (JavascriptExecutor) driver;
  407. WebElement element2 = driver
  408. .findElement(By.xpath("//label[text()='Local Currency']/ancestor::lightning-combobox//button"));
  409. UtilMethods.waitTillElementIsVisible(logger, driver, element2);
  410. UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, element2, "Local Currency");
  411. WebElement selectionElement1 = driver.findElement(
  412. By.xpath("//label[text()='Local Currency']//ancestor::div[1]//div[@role='listbox']//span/span[text()='" + localCurrency + "']"));
  413. executor.executeScript("arguments[0].click();", selectionElement1);
  414. Thread.sleep(5000);
  415. UtilMethods.waitTillElementIsVisible(logger, driver, industrySubSegmentOnCreateOppPage);
  416. UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, industrySubSegmentOnCreateOppPage,
  417. "ISS");
  418. Thread.sleep(5000);
  419. if (IndustrySubSegment.equals("H&PS HEALTH-COMM'L PAYER")
  420. || IndustrySubSegment.equals("H&PS HEALTH-COMM'L PROVIDER")) {
  421. String IndustrySubSegmentData[] = IndustrySubSegment.split("'");
  422. UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger,
  423. driver.findElement(By
  424. .xpath("//span[text()='Industry Sub Segment']/../../following-sibling::div//div[contains(text(),'"
  425. + IndustrySubSegmentData[0] + "') and contains(text(),'" + IndustrySubSegmentData[1]
  426. + "')]")),
  427. "industry sub segment");
  428. } else {
  429. UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger,
  430. driver.findElement(
  431. By.xpath("//span[text()='Industry Sub Segment']/../../following-sibling::div//div[text()='"
  432. + IndustrySubSegment + "']")),
  433. "industry sub segment");
  434. }
  435. UtilMethods.waitTillElementIsVisible(logger, driver, closeDateOnCreateOppPage);
  436. UtilMethods.setText(logger, closeDateOnCreateOppPage, closeDate);
  437. //closeDateOnCreateOppPage.sendKeys(Keys.ENTER);
  438. UtilMethods.clickEnter(logger, closeDateOnCreateOppPage, "Validate error msg");
  439. return driver;
  440. }
  441. public static WebDriver updateOppName(WebDriver driver, String path, ExtentTest logger, String oppName,
  442. String excelName, String sheetName, int row) throws InterruptedException {
  443. excel(excelName);
  444. String opportunityName = excel.getCellData(sheetName, oppName, row);
  445. opportunityNameOnCreateOppPage.clear();
  446. // Setting Value for Opportunity Name field
  447. UtilMethods.waitTillElementIsVisible(logger, driver, opportunityNameOnCreateOppPage);
  448. UtilMethods.setText(logger, opportunityNameOnCreateOppPage, opportunityName);
  449. return driver;
  450. }
  451. public static WebDriver updateCR(WebDriver driver, String path, ExtentTest logger, String crID, String excelName,
  452. String sheetName, int row) throws InterruptedException {
  453. UtilMethods.waitTillElementIsVisible(logger, driver, clearCR);
  454. //check click function
  455. //UtilMethods.clickOn(logger, clearCR, "clearCR is done");
  456. MethodFactory.clickTheRespectiveButtonByJavaScriptExecutor(driver, path, logger,
  457. clearCR, "CR is cleared");
  458. //
  459. MethodFactory.refreshPg(driver);
  460. Thread.sleep(3000);
  461. String accountID = excel.getCellData(sheetName, crID, row);
  462. UtilMethods.waitTillElementIsVisible(logger, driver, customerRelationshipOnCreateOppPage);
  463. UtilMethods.setText(logger, customerRelationshipOnCreateOppPage, accountID);
  464. Thread.sleep(3000);
  465. // UtilMethods.clickEnter(logger, customerRelationshipOnCreateOppPage, "Customer Relationship");
  466. // Thread.sleep(4000);
  467. UtilMethods.clickEnter(logger, customerRelationshipOnCreateOppPage, "Customer Relationship");
  468. Thread.sleep(10000);
  469. UtilMethods.clickOn(logger, cRSelection, "CR");
  470. UtilMethods.clickOn(logger, selectButton, "Select");
  471. Thread.sleep(3000);
  472. return driver;
  473. }
  474. public static WebDriver updateNewCR(WebDriver driver, String path, ExtentTest logger, String crID, String excelName,
  475. String sheetName, int row, String sellingCountryval, String IndustrySubSegmentValue) throws InterruptedException {
  476. UtilMethods.waitTillElementIsVisible(logger, driver, clearCR);
  477. //check click function
  478. //UtilMethods.clickOn(logger, clearCR, "clearCR is done");
  479. MethodFactory.clickTheRespectiveButtonByJavaScriptExecutor(driver, path, logger,
  480. clearCR, "CR is cleared");
  481. //
  482. String IndustrySubSegment;
  483. String sellingCountry;
  484. Thread.sleep(3000);
  485. String accountID = excel.getCellData(sheetName, crID, row);
  486. sellingCountry = excel.getCellData(sheetName, sellingCountryval, row);
  487. IndustrySubSegment = excel.getCellData(sheetName, IndustrySubSegmentValue, row);
  488. UtilMethods.waitTillElementIsVisible(logger, driver, customerRelationshipOnCreateOppPage);
  489. UtilMethods.setText(logger, customerRelationshipOnCreateOppPage, accountID);
  490. Thread.sleep(3000);
  491. UtilMethods.clickEnter(logger, customerRelationshipOnCreateOppPage, "Customer Relationship");
  492. // UtilMethods.waitTillElementIsVisible(logger, driver, RT_WinLossSurveyFindingsPage.cRSelection);
  493. // UtilMethods.clickOn(logger, cRSelection, "CR");
  494. Thread.sleep(10000);
  495. UtilMethods.clickOn(logger, cRSelection, "CR");
  496. UtilMethods.clickOn(logger, selectButton, "Select");
  497. Thread.sleep(3000);
  498. JavascriptExecutor executor = (JavascriptExecutor) driver;
  499. WebElement element1 = driver.findElement(
  500. By.xpath("//label[text()='Selling Country/Location']/ancestor::lightning-combobox//input | //label[text()='Selling Country/Location']/ancestor::lightning-combobox//button[@name='SellingCountry__c']"));
  501. Thread.sleep(2000);
  502. UtilMethods.waitTillElementIsVisible(logger, driver, element1);
  503. UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, element1, "Seling Country");
  504. WebElement selectionElement = driver.findElement(By
  505. .xpath("//label[text()='Selling Country/Location']//ancestor::div[1]//div[@role='listbox']//span/span[text()='"
  506. + sellingCountry + "']"));
  507. executor.executeScript("arguments[0].click();", selectionElement);
  508. Thread.sleep(5000);
  509. UtilMethods.waitTillElementIsVisible(logger, driver, industrySubSegmentOnCreateOppPage);
  510. UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, industrySubSegmentOnCreateOppPage,
  511. "ISS");
  512. Thread.sleep(5000);
  513. if (IndustrySubSegment.equals("H&PS HEALTH-COMM'L PAYER")
  514. || IndustrySubSegment.equals("H&PS HEALTH-COMM'L PROVIDER")) {
  515. String IndustrySubSegmentData[] = IndustrySubSegment.split("'");
  516. UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger,
  517. driver.findElement(By
  518. .xpath("//span[text()='Industry Sub Segment']/../../following-sibling::div//div[contains(text(),'"
  519. + IndustrySubSegmentData[0] + "') and contains(text(),'" + IndustrySubSegmentData[1]
  520. + "')]")),
  521. "industry sub segment");
  522. } else {
  523. UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger,
  524. driver.findElement(
  525. By.xpath("//span[text()='Industry Sub Segment']/../../following-sibling::div//div[text()='"
  526. + IndustrySubSegment + "']")),
  527. "industry sub segment");
  528. }
  529. Thread.sleep(3000);
  530. return driver;
  531. }
  532. public static WebDriver updateDQCResponse(WebDriver driver, String path, ExtentTest logger, String headingQues,
  533. String response, String excelName, String sheetName, int row)
  534. throws InterruptedException, EncryptedDocumentException, InvalidFormatException, IOException {
  535. excel(excelName);
  536. int rowcount = excel.getColumnRowCount(sheetName, headingQues);
  537. rowcount = rowcount + 2;
  538. logger.log(LogStatus.INFO, "row count " + rowcount);
  539. for (int i = 2; i < rowcount; i++) {
  540. String headingValue = excel.getCellData(sheetName, headingQues, i);
  541. String selection = excel.getCellData(sheetName, response, i);
  542. WebElement field1 = driver.findElement(By
  543. .xpath("//div[@c-oppcreatedqclineitem_oppcreatedqclineitem]//span[text()='" + headingValue + "']"));
  544. String strXpath = "//div[@c-oppcreatedqclineitem_oppcreatedqclineitem]//span[text()='" + headingValue + "']";
  545. WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(1000));
  546. WebElement element=wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(strXpath)));
  547. UtilMethods.verifyElementPresent(logger, driver, driver.findElements(By.xpath(strXpath)));
  548. ((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element);
  549. UtilMethods.clickOn(logger, element, "textValue" + headingValue);
  550. Thread.sleep(2000);
  551. // Selecting Response
  552. WebElement selectionTxt = driver.findElement(By.xpath("//slot//div[text()='" + selection + "']"));
  553. //UtilMethods.clickOn(logger, selectionTxt, "selection");
  554. UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, selectionTxt, "selection");
  555. }
  556. return driver;
  557. }
  558. // Validations
  559. public static WebDriver validateDQCResult(WebDriver driver, String path, ExtentTest logger, String excelName,
  560. String sheetName, int row)
  561. throws InterruptedException, EncryptedDocumentException, InvalidFormatException, IOException {
  562. excel(excelName);
  563. if (weakResult.size() > 0) {
  564. logger.log(LogStatus.PASS, " Deliverability is weak.");
  565. S_ASSERT.assertTrue(true);
  566. } else {
  567. TS = TakeScreenshot.CaptureScreen(driver, "validateDQCResult");
  568. logger.log(LogStatus.FAIL, "Deliverability is not weak. " + logger.addScreenCapture(TS));
  569. S_ASSERT.assertTrue(false);
  570. }
  571. int ans = notAnswered.size();
  572. if (ans == 10) {
  573. logger.log(LogStatus.PASS, "8 not answered, 2 headings are blank");
  574. S_ASSERT.assertTrue(true);
  575. } else {
  576. TS = TakeScreenshot.CaptureScreen(driver, "validateDQCResult");
  577. logger.log(LogStatus.FAIL, " Answers not marked properly" + logger.addScreenCapture(TS));
  578. S_ASSERT.assertTrue(false);
  579. }
  580. if (overallResult.size() == 1) {
  581. logger.log(LogStatus.PASS, "Overall Result is blank");
  582. S_ASSERT.assertTrue(true);
  583. } else {
  584. TS = TakeScreenshot.CaptureScreen(driver, "validateDQCResult");
  585. logger.log(LogStatus.FAIL, " Overall Result is not marked properly" + logger.addScreenCapture(TS));
  586. S_ASSERT.assertTrue(false);
  587. }
  588. return driver;
  589. }
  590. public static WebDriver validateAttriPerField(WebDriver driver, String path, ExtentTest logger,
  591. String attrNameValue, String excelName, String sheetName, int row)
  592. throws InterruptedException, EncryptedDocumentException, InvalidFormatException, IOException {
  593. excel(excelName);
  594. int rowcount = excel.getColumnRowCount(sheetName, attrNameValue);
  595. // UtilMethods.clickOn(logger, editLink, "editLink");
  596. UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, editLink,
  597. "Edit% Link");
  598. Thread.sleep(3000);
  599. List<WebElement> inputValues = driver
  600. .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"));
  601. int values = inputValues.size();
  602. logger.log(LogStatus.INFO, " Values " + values);
  603. logger.log(LogStatus.INFO, " rowcount " + rowcount);
  604. Thread.sleep(3000);
  605. if (rowcount == values) {
  606. logger.log(LogStatus.PASS, "Value is correct.");
  607. S_ASSERT.assertTrue(true);
  608. } else {
  609. TS = TakeScreenshot.CaptureScreen(driver, "updateAttriPerc");
  610. logger.log(LogStatus.FAIL, "Value is not correct." + logger.addScreenCapture(TS));
  611. S_ASSERT.assertTrue(false);
  612. }
  613. return driver;
  614. }
  615. public static WebDriver validateAttributePerc(WebDriver driver, String path, ExtentTest logger,
  616. String attrNameValue, String excelName, String sheetName, int row)
  617. throws InterruptedException, EncryptedDocumentException, InvalidFormatException, IOException {
  618. Thread.sleep(5000);
  619. excel(excelName);
  620. int rowcount = excel.getColumnRowCount(sheetName, attrNameValue);
  621. rowcount = rowcount + 2;
  622. logger.log(LogStatus.INFO, "row count " + rowcount);
  623. for (int i = 2; i < rowcount; i++) {
  624. String attrName = excel.getCellData(sheetName, attrNameValue, i);
  625. logger.log(LogStatus.INFO, " attrName " + attrName);
  626. List<WebElement> inputValues = driver
  627. .findElements(By.xpath("//span[text()='" + attrName + "']//following::span[text()=' 50% ']"));
  628. logger.log(LogStatus.INFO, " inputValues " + inputValues);
  629. if (inputValues.size() > 0) {
  630. logger.log(LogStatus.PASS, "% Value is correct.");
  631. S_ASSERT.assertTrue(true);
  632. } else {
  633. TS = TakeScreenshot.CaptureScreen(driver, "validateAttributePerc");
  634. logger.log(LogStatus.FAIL, "% Value is not correct." + logger.addScreenCapture(TS));
  635. S_ASSERT.assertTrue(false);
  636. }
  637. }
  638. return driver;
  639. }
  640. public static WebDriver validateErrorMsg(WebDriver driver, String path, ExtentTest logger, String errorMsg,
  641. String excelName, String sheetName, int row) throws InterruptedException {
  642. excel(excelName);
  643. Thread.sleep(2000);
  644. String ErrorMsg;
  645. ErrorMsg = excel.getCellData(sheetName, errorMsg, row);
  646. // MethodFactory.clickTheRespectiveButtonByJavaScriptExecutor(driver, path, logger,
  647. // saveAndContinueButtonOnOppCreatePage, "saveAndContinueButtonOnOppCreatePage");
  648. driver.manage().window().maximize();
  649. List<WebElement> errorMessage1 = driver.findElements(By.xpath("//span[contains(text(),'" + ErrorMsg + "')]|//div[text()='"+ErrorMsg + "']"));
  650. //WebElement errorMessage1 = driver.findElement(By.xpath("//span[contains(text(),'" + ErrorMsg + "')]"));
  651. int size = errorMessage1.size();
  652. logger.log(LogStatus.INFO, "size " + size);
  653. if (size > 0) {// || createPage > 0 ){
  654. logger.log(LogStatus.PASS, "Proper error msg is displayed:" +ErrorMsg);
  655. S_ASSERT.assertTrue(true);
  656. } else {
  657. TS = TakeScreenshot.CaptureScreen(driver, "Opp Create Function");
  658. logger.log(LogStatus.FAIL, "Error msg is not displayed correctly" + logger.addScreenCapture(TS));
  659. S_ASSERT.assertTrue(false);
  660. }
  661. return driver;
  662. }
  663. public static WebDriver validateErrorMsgOnSave(WebDriver driver, String path, ExtentTest logger, String errorMsg,
  664. String excelName, String sheetName, int row) throws InterruptedException {
  665. excel(excelName);
  666. Thread.sleep(2000);
  667. //UtilMethods.clickOn(logger, saveAndContinueButtonOnOppCreatePage, "saveAndContinueButtonOnOppCreatePage clicked");
  668. UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, saveAndContinueButtonOnOppCreatePage, "saveAndContinueButtonOnOppCreatePage");
  669. Thread.sleep(1000);
  670. String ErrorMsg;
  671. ErrorMsg = excel.getCellData(sheetName, errorMsg, row);
  672. // List<WebElement> errorMessage1 = driver.findElements(By.xpath("//span[contains(text(),'" + ErrorMsg + "')]"));
  673. //
  674. // int size = errorMessage1.size();
  675. List<WebElement> errorMessage1 = driver.findElements(By.xpath("//span[contains(text(),'" + ErrorMsg + "')]"));
  676. Thread.sleep(3000);
  677. int size = errorMessage1.size();
  678. logger.log(LogStatus.INFO, "size " + size);
  679. if (size > 0) {// || createPage > 0 ){
  680. logger.log(LogStatus.PASS, "Opportunity is not created.");
  681. S_ASSERT.assertTrue(true);
  682. } else {
  683. TS = TakeScreenshot.CaptureScreen(driver, "Opp Create Function");
  684. logger.log(LogStatus.FAIL, "Opportunity is created." + logger.addScreenCapture(TS));
  685. S_ASSERT.assertTrue(false);
  686. }
  687. return driver;
  688. }
  689. public static WebDriver validatError(WebDriver driver, String path, ExtentTest logger, String errorMsg,
  690. String excelName, String sheetName, int row) throws InterruptedException {
  691. excel(excelName);
  692. Thread.sleep(2000);
  693. //UtilMethods.clickOn(logger, saveAndContinueButtonOnOppCreatePage, "saveAndContinueButtonOnOppCreatePage clicked");
  694. // UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, saveAndContinueButtonOnOppCreatePage, "saveAndContinueButtonOnOppCreatePage");
  695. Thread.sleep(1000);
  696. String ErrorMsg;
  697. ErrorMsg = excel.getCellData(sheetName, errorMsg, row);
  698. //List<WebElement> errorMessage1 = driver.findElements(By.xpath("//span[contains(text(),'" + ErrorMsg + "')]"));
  699. List<WebElement> errorMessage1 = driver.findElements(By.xpath("//div[@class='viewport' and @aria-hidden='false' ]//div[contains(@class,'active')]//span[contains(text(),'" + ErrorMsg + "')]]"));
  700. int size = errorMessage1.size();
  701. logger.log(LogStatus.INFO, "size " + size);
  702. if (size > 0) {// || createPage > 0 ){
  703. logger.log(LogStatus.PASS, "Opportunity is not created.");
  704. S_ASSERT.assertTrue(true);
  705. } else {
  706. TS = TakeScreenshot.CaptureScreen(driver, "Opp Create Function");
  707. logger.log(LogStatus.FAIL, "Opportunity is created." + logger.addScreenCapture(TS));
  708. S_ASSERT.assertTrue(false);
  709. }
  710. return driver;
  711. }
  712. public static WebDriver validateDQCResultAfterOppCreation(WebDriver driver, String path, ExtentTest logger,
  713. String delValue, String excelName, String sheetName, int row) throws InterruptedException {
  714. excel(excelName);
  715. String ErrorMsg;
  716. Thread.sleep(5000);
  717. int size = grayResult.size();
  718. String deliverability = excel.getCellData(sheetName, delValue, row);
  719. Thread.sleep(3000);
  720. if (size == 3) {
  721. logger.log(LogStatus.PASS, "DQC is correct on created Opportunity.");
  722. S_ASSERT.assertTrue(true);
  723. } else {
  724. TS = TakeScreenshot.CaptureScreen(driver, "Opp Create Function");
  725. logger.log(LogStatus.FAIL, "DQC is not correct on created Opportunity." + logger.addScreenCapture(TS));
  726. S_ASSERT.assertTrue(false);
  727. }
  728. List<WebElement> delvalue = driver.findElements(By.xpath("//table//td//img[@alt='" + deliverability + "']"));
  729. if (delvalue.size() == 1) {
  730. logger.log(LogStatus.PASS, "DQC Value is correct on created Opportunity.");
  731. S_ASSERT.assertTrue(true);
  732. } else {
  733. TS = TakeScreenshot.CaptureScreen(driver, "Opp Create Function");
  734. logger.log(LogStatus.FAIL,
  735. "DQC Value is not correct on created Opportunity." + logger.addScreenCapture(TS));
  736. S_ASSERT.assertTrue(false);
  737. }
  738. return driver;
  739. }
  740. public static WebDriver validateRevenue(WebDriver driver, String path, ExtentTest logger, String ssgValue,
  741. String revenueValue, String excelName, String sheetName, int row) throws InterruptedException {
  742. excel(excelName);
  743. Thread.sleep(5000);
  744. String ssg = excel.getCellData(sheetName, ssgValue, row);
  745. String revenue = excel.getCellData(sheetName, revenueValue, row);
  746. List<WebElement> totRevenue = driver
  747. .findElements(By.xpath("//a[text()='" + ssg + "']//ancestor::tr//span[text()='" + revenue + "']"));
  748. if (totRevenue.size() == 1) {
  749. logger.log(LogStatus.PASS, "Revenue is correct on created Opportunity.");
  750. S_ASSERT.assertTrue(true);
  751. } else {
  752. TS = TakeScreenshot.CaptureScreen(driver, "validateRevenue");
  753. logger.log(LogStatus.FAIL, "Revenue is not correct on created Opportunity." + logger.addScreenCapture(TS));
  754. S_ASSERT.assertTrue(false);
  755. }
  756. return driver;
  757. }
  758. public static WebDriver validateErrorMsgForRevenue(WebDriver driver, String path, ExtentTest logger,
  759. String errorMsg, String excelName, String sheetName, int row) throws InterruptedException {
  760. excel(excelName);
  761. String ErrorMsg;
  762. Thread.sleep(3000);
  763. ErrorMsg = excel.getCellData(sheetName, errorMsg, row);
  764. List<WebElement> errorMessage1 = driver.findElements(By.xpath("//div[text()='" + ErrorMsg + "']"));
  765. int size = errorMessage1.size();
  766. if (size > 0) {
  767. logger.log(LogStatus.PASS, "Revenue is not correct.");
  768. S_ASSERT.assertTrue(true);
  769. } else {
  770. TS = TakeScreenshot.CaptureScreen(driver, "Revenue is correct.");
  771. logger.log(LogStatus.FAIL, "Revenue is correct." + logger.addScreenCapture(TS));
  772. S_ASSERT.assertTrue(false);
  773. }
  774. return driver;
  775. }
  776. public static WebDriver validateSaveBtnEnabled(WebDriver driver, String path, ExtentTest logger, String excelName,
  777. String sheetName, int row) throws InterruptedException {
  778. List<WebElement> btnSize = driver.findElements(By.xpath("//button[text()='Save & Continue']"));
  779. int size = btnSize.size();
  780. if (size > 0) {
  781. logger.log(LogStatus.PASS, "Save Button is enabled");
  782. S_ASSERT.assertTrue(true);
  783. } else {
  784. TS = TakeScreenshot.CaptureScreen(driver, "validateSaveBtnEnabled");
  785. logger.log(LogStatus.FAIL, "Save Button is Disabled" + logger.addScreenCapture(TS));
  786. S_ASSERT.assertTrue(false);
  787. }
  788. return driver;
  789. }
  790. public static WebDriver validateSaveBtnDisabled(WebDriver driver, String path, ExtentTest logger, String excelName,
  791. String sheetName, int row) throws InterruptedException {
  792. List<WebElement> btnSize = driver
  793. .findElements(By.xpath("//button[@disabled]//following::button[text()='Save & Continue']"));
  794. int size = btnSize.size();
  795. if (size > 0) {
  796. logger.log(LogStatus.PASS, "Button Disabled");
  797. S_ASSERT.assertTrue(true);
  798. } else {
  799. TS = TakeScreenshot.CaptureScreen(driver, "validateSaveBtnDisabled");
  800. logger.log(LogStatus.FAIL, "Button enabled" + logger.addScreenCapture(TS));
  801. S_ASSERT.assertTrue(false);
  802. }
  803. return driver;
  804. }
  805. public static WebDriver validateNumberOfSSGsCanBeAdded(WebDriver driver, String path, ExtentTest logger)
  806. throws InterruptedException {
  807. for (int i = 1; i < 4; i++) {
  808. if (ssgAddBtn.isEnabled()) {
  809. Thread.sleep(2000);
  810. UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, ssgAddBtn, "ssgAddBtn");
  811. logger.log(LogStatus.INFO, "Clicked " + i);
  812. Thread.sleep(2000);
  813. Actions mouseHover = new Actions(driver);
  814. mouseHover.moveToElement(cancelButtonInEditFinancialPage);
  815. }
  816. }
  817. Thread.sleep(3000);
  818. if (ssgAddButton.size() > 0) {
  819. TS = TakeScreenshot.CaptureScreen(driver, "Add Button is present");
  820. logger.log(LogStatus.FAIL, "Add Button is still present" + logger.addScreenCapture(TS));
  821. S_ASSERT.assertTrue(false);
  822. } else {
  823. logger.log(LogStatus.PASS, "Add Button is not present");
  824. S_ASSERT.assertTrue(true);
  825. }
  826. Thread.sleep(2000);
  827. UtilMethods.clickOn(logger, delete2ndSSG, "deleteSSG");
  828. Thread.sleep(2000);
  829. UtilMethods.clickOn(logger, oKButtonSubmitForApproval, "oKButtonSubmitForApproval");
  830. Thread.sleep(2000);
  831. if (ssgAddButton.size() == 1) {
  832. logger.log(LogStatus.PASS, "Add Button is present");
  833. S_ASSERT.assertTrue(true);
  834. } else {
  835. TS = TakeScreenshot.CaptureScreen(driver, "Add Button is not present");
  836. logger.log(LogStatus.FAIL, "Add Button is not present" + logger.addScreenCapture(TS));
  837. S_ASSERT.assertTrue(false);
  838. }
  839. return driver;
  840. }
  841. public static WebDriver validateMessageOnPg2(WebDriver driver, String path, ExtentTest logger, String textMsg,
  842. String excelName, String sheetName, int row) throws InterruptedException {
  843. Thread.sleep(10000);
  844. UtilMethods.clickOn(logger, previousStepButton, "previousStepButton");
  845. String txtMsg = excel.getCellData(sheetName, textMsg, row);
  846. List<WebElement> text = driver.findElements(By.xpath("//div[text()='" + txtMsg + "']"));
  847. if (text.size() == 1) {
  848. logger.log(LogStatus.PASS, "Correct Message is present");
  849. S_ASSERT.assertTrue(true);
  850. } else {
  851. TS = TakeScreenshot.CaptureScreen(driver, "validateMessageOnPg2");
  852. logger.log(LogStatus.FAIL, "Correct Message is not present" + logger.addScreenCapture(TS));
  853. S_ASSERT.assertTrue(false);
  854. }
  855. return driver;
  856. }
  857. public static WebDriver validatePlaceholderText(WebDriver driver, String path, ExtentTest logger, String FieldName,
  858. String FieldValue, String FieldName2, String FieldValue2, String excelName, String sheetName, int row)
  859. throws InterruptedException, EncryptedDocumentException, InvalidFormatException, IOException {
  860. excel(excelName);
  861. int rowcount = excel.getColumnRowCount(sheetName, FieldName);
  862. String fieldValue2 = excel.getCellData(sheetName, FieldValue2, row);
  863. String fieldName2 = excel.getCellData(sheetName, FieldName2, row);
  864. rowcount = rowcount + 2;
  865. for (int i = 2; i < rowcount; i++) {
  866. String fieldValue = excel.getCellData(sheetName, FieldValue, i);
  867. String fieldName = excel.getCellData(sheetName, FieldName, i);
  868. List<WebElement> text = driver.findElements(By.xpath(
  869. "//label[text()='" + fieldName + "']//ancestor::div//input[@placeholder='" + fieldValue + "']|//label[text()='" + fieldName + "']//ancestor::div//div[text()='" + fieldValue + "']|//div[text()='" + fieldValue + "']"));
  870. int size = text.size();
  871. if (size == 1) {
  872. logger.log(LogStatus.PASS, "Placeholder Text is Present as expected in " + fieldName);
  873. S_ASSERT.assertTrue(true);
  874. } else {
  875. TS = TakeScreenshot.CaptureScreen(driver, "Placeholder Text is not as expected.");
  876. logger.log(LogStatus.FAIL,
  877. "Placeholder Text is not as expected." + fieldName + logger.addScreenCapture(TS));
  878. S_ASSERT.assertTrue(false);
  879. }
  880. }
  881. List<WebElement> text2 = driver.findElements(By.xpath(
  882. "//span[text()='" + fieldName2 + "']//ancestor::div//input[@placeholder='" + fieldValue2 + "']|//div[text()='" + fieldValue2 + "']"));
  883. int size = text2.size();
  884. if (size == 1) {
  885. logger.log(LogStatus.PASS, "Placeholder Text is Present as expected in " + fieldName2);
  886. S_ASSERT.assertTrue(true);
  887. } else {
  888. TS = TakeScreenshot.CaptureScreen(driver, "Placeholder Text is not as expected.");
  889. logger.log(LogStatus.FAIL,
  890. "Placeholder Text is not as expected." + fieldName2 + logger.addScreenCapture(TS));
  891. S_ASSERT.assertTrue(false);
  892. }
  893. return driver;
  894. }
  895. public static WebDriver validateCRName(WebDriver driver, String path, ExtentTest logger, String CRName,
  896. String excelName, String sheetName, int row) throws InterruptedException {
  897. excel(excelName);
  898. String crName = excel.getCellData(sheetName, CRName, row);
  899. List<WebElement> crname = driver.findElements(By.xpath("//input[contains(@placeholder,'" + crName + "')]"));
  900. int size = crname.size();
  901. if (size == 1) {
  902. logger.log(LogStatus.PASS, "CR is Present as expected.");
  903. S_ASSERT.assertTrue(true);
  904. } else {
  905. TS = TakeScreenshot.CaptureScreen(driver, "CR is not as expected.");
  906. logger.log(LogStatus.FAIL, "CR is not as expected." + logger.addScreenCapture(TS));
  907. S_ASSERT.assertTrue(false);
  908. }
  909. return driver;
  910. }
  911. public static WebDriver validateOppInRelaetdList(WebDriver driver, String path, ExtentTest logger, String oppName,
  912. String excelName, String sheetName, int row) throws InterruptedException {
  913. excel(excelName);
  914. String OppName = excel.getCellData(sheetName, oppName, row);
  915. UtilMethods.waitTillElementIsVisible(logger, driver, oppRelatedList);
  916. //UtilMethods.clickOn(logger, oppRelatedList, "oppRelatedList is clicked");
  917. UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, oppRelatedList, "oppRelatedList is clicked");
  918. Thread.sleep(5000);
  919. List<WebElement> OppNameInRL = driver.findElements(By.xpath("//a[text()='" + OppName + "']|//a//span/slot[text()='" + OppName + "']"));
  920. Thread.sleep(5000);
  921. int size = OppNameInRL.size();
  922. System.out.println(size);
  923. if (size > 0) {
  924. logger.log(LogStatus.PASS, "Opp is Present as expected.");
  925. S_ASSERT.assertTrue(true);
  926. } else {
  927. UtilMethods.clickOn(logger, oppColumnonCR, "opp column on CR is clicked");
  928. List<WebElement> OppNameInRL1 = driver.findElements(By.xpath("//a[text()='" + OppName + "']"));
  929. Thread.sleep(5000);
  930. int size1 = OppNameInRL1.size();
  931. System.out.println(size1);
  932. if (size1 > 0) {
  933. logger.log(LogStatus.PASS, "Opp is Present as expected.");
  934. S_ASSERT.assertTrue(true);
  935. } else {
  936. TS = TakeScreenshot.CaptureScreen(driver, "Opp is not present.");
  937. logger.log(LogStatus.FAIL, "Opp is not present as expected." + logger.addScreenCapture(TS));
  938. S_ASSERT.assertTrue(false);
  939. }}
  940. return driver;
  941. }
  942. public static WebDriver validateFieldsOnPage1(WebDriver driver, String path, ExtentTest logger, String fieldNames,
  943. String ISS, String excelName, String sheetName, int row)
  944. throws InterruptedException, EncryptedDocumentException, InvalidFormatException, IOException {
  945. excel(excelName);
  946. logger.log(LogStatus.INFO, "Validating fields function");
  947. Thread.sleep(5000);
  948. int rowcount = excel.getColumnRowCount(sheetName, fieldNames);
  949. rowcount = rowcount + 2;
  950. logger.log(LogStatus.INFO, "rowcount " + rowcount);
  951. Thread.sleep(7000);
  952. for (int i = 2; i < rowcount; i++) {
  953. String fieldValue = excel.getCellData(sheetName, fieldNames, i);
  954. List<WebElement> fields = driver.findElements(
  955. By.xpath("(//div[@class='slds-p-horizontal_medium']//label[text()='" + fieldValue + "'])[1]"));
  956. if (fields.size() == 1) {
  957. logger.log(LogStatus.PASS, "Field is visible on UI " + fieldValue);
  958. S_ASSERT.assertTrue(true);
  959. } else {
  960. TS = TakeScreenshot.CaptureScreen(driver, "validateFieldsOnPage1" + fieldValue);
  961. logger.log(LogStatus.FAIL, "Field is not visible on UI " + logger.addScreenCapture(TS));
  962. S_ASSERT.assertTrue(false);
  963. }
  964. }
  965. String ISSfield = excel.getCellData(sheetName, ISS, row);
  966. List<WebElement> fields = driver
  967. .findElements(By.xpath("//div[@class='slds-p-horizontal_medium']//span[text()='" + ISSfield + "']"));
  968. if (fields.size() > 0) {
  969. logger.log(LogStatus.PASS, "ISS Field is visible on UI ");
  970. S_ASSERT.assertTrue(true);
  971. } else {
  972. TS = TakeScreenshot.CaptureScreen(driver, "validateFieldsOnPage1");
  973. logger.log(LogStatus.FAIL, "Field is not visible on UI " + logger.addScreenCapture(TS));
  974. S_ASSERT.assertTrue(false);
  975. }
  976. return driver;
  977. }
  978. public static WebDriver validateFieldsOnPage2(WebDriver driver, String path, ExtentTest logger, String fieldNames,
  979. String fieldName2, String excelName, String sheetName, int row)
  980. throws InterruptedException, EncryptedDocumentException, InvalidFormatException, IOException {
  981. Thread.sleep(3000);
  982. excel(excelName);
  983. int rowcount = excel.getColumnRowCount(sheetName, fieldNames);
  984. rowcount = rowcount + 2;
  985. for (int i = 2; i < rowcount; i++) {
  986. String fieldValue = excel.getCellData(sheetName, fieldNames, i);
  987. List<WebElement> fields = driver.findElements(
  988. By.xpath("//div[@class='slds-p-horizontal_medium']//label[text()='" + fieldValue + "']"));
  989. if (fields.size() > 0) {
  990. logger.log(LogStatus.PASS, "Field is visible on UI " + fieldValue);
  991. S_ASSERT.assertTrue(true);
  992. } else {
  993. TS = TakeScreenshot.CaptureScreen(driver, "validateFieldsOnPage2" + fieldValue);
  994. logger.log(LogStatus.FAIL, "Field is not visible on UI " + logger.addScreenCapture(TS));
  995. S_ASSERT.assertTrue(false);
  996. }
  997. }
  998. String fieldValue2 = excel.getCellData(sheetName, fieldName2, row);
  999. List<WebElement> field2 = driver
  1000. .findElements(By.xpath("//div[@class='slds-p-horizontal_medium']//span[text()='" + fieldValue2 + "']"));
  1001. if (field2.size() > 0) {
  1002. logger.log(LogStatus.PASS, "Field is visible on UI " + fieldValue2);
  1003. S_ASSERT.assertTrue(true);
  1004. } else {
  1005. TS = TakeScreenshot.CaptureScreen(driver, "validateFieldsOnPage2" + fieldValue2);
  1006. logger.log(LogStatus.FAIL, "Field is not visible on UI " + logger.addScreenCapture(TS));
  1007. S_ASSERT.assertTrue(false);
  1008. }
  1009. return driver;
  1010. }
  1011. public static WebDriver validateAstrikOnFields(WebDriver driver, String path, ExtentTest logger, String fieldNames,
  1012. String excelName, String sheetName, int row)
  1013. throws InterruptedException, EncryptedDocumentException, InvalidFormatException, IOException {
  1014. excel(excelName);
  1015. int rowcount = excel.getColumnRowCount(sheetName, fieldNames);
  1016. rowcount = rowcount + 2;
  1017. for (int i = 2; i < rowcount; i++) {
  1018. String fieldValue = excel.getCellData(sheetName, fieldNames, i);
  1019. List<WebElement> fields = driver
  1020. .findElements(By.xpath("//abbr[text()='*']//following::label[text()='" + fieldValue + "']|//div[.//abbr[text()='*']]//label[text()='" + fieldValue + "']"));
  1021. Thread.sleep(2000);
  1022. if (fields.size() > 0) {
  1023. logger.log(LogStatus.PASS, " * is visible on UI " + fieldValue);
  1024. S_ASSERT.assertTrue(true);
  1025. } else {
  1026. TS = TakeScreenshot.CaptureScreen(driver, "validateAstrikOnFields" + fieldValue);
  1027. logger.log(LogStatus.FAIL, "* is not visible on UI " + logger.addScreenCapture(TS));
  1028. S_ASSERT.assertTrue(false);
  1029. }
  1030. }
  1031. return driver;
  1032. }
  1033. public static WebDriver validateTextOnISS(WebDriver driver, String path, ExtentTest logger, String textISS,
  1034. String excelName, String sheetName, int row)
  1035. throws InterruptedException, EncryptedDocumentException, InvalidFormatException, IOException {
  1036. String fieldValue = excel.getCellData(sheetName, textISS, row);
  1037. List<WebElement> fields = driver.findElements(By.xpath("//input[@placeholder='" + fieldValue + "']|//div[text()='" + fieldValue + "']"));
  1038. if (fields.size() == 1) {
  1039. logger.log(LogStatus.PASS, "Correct Text is visible on UI for ISS");
  1040. System.out.print("Correct Text is visible on UI for ISS");
  1041. S_ASSERT.assertTrue(true);
  1042. } else {
  1043. TS = TakeScreenshot.CaptureScreen(driver, "textOnISS");
  1044. logger.log(LogStatus.FAIL, " Text is not visible on UI " + logger.addScreenCapture(TS));
  1045. S_ASSERT.assertTrue(false);
  1046. }
  1047. return driver;
  1048. }
  1049. public static WebDriver validateTextOnPage2(WebDriver driver, String path, ExtentTest logger, String textPage2,
  1050. String excelName, String sheetName, int row)
  1051. throws InterruptedException, EncryptedDocumentException, InvalidFormatException, IOException {
  1052. Thread.sleep(15000);
  1053. excel(excelName);
  1054. String textValue = excel.getCellData(sheetName, textPage2, row);
  1055. List<WebElement> fields = driver.findElements(By.xpath("//div[text()='" + textValue + "']|//p[contains(text(),'" + textValue + "')]"));
  1056. if (fields.size() == 1) {
  1057. logger.log(LogStatus.PASS, " Correct Text is visible on UI on Page 2");
  1058. S_ASSERT.assertTrue(true);
  1059. } else {
  1060. TS = TakeScreenshot.CaptureScreen(driver, "validateTextOnPage2");
  1061. logger.log(LogStatus.FAIL, "Correct Text is not visible on UI " + logger.addScreenCapture(TS));
  1062. S_ASSERT.assertTrue(false);
  1063. }
  1064. return driver;
  1065. }
  1066. public static WebDriver validateFieldsDisabled(WebDriver driver, String path, ExtentTest logger,
  1067. String NumDisabledField, String excelName, String sheetName, int row)
  1068. throws InterruptedException, EncryptedDocumentException, InvalidFormatException, IOException {
  1069. Thread.sleep(5000);
  1070. excel(excelName);
  1071. int size = disabledFields.size();
  1072. String fieldValue = excel.getCellData(sheetName, NumDisabledField, row);
  1073. int num = Integer.parseInt(fieldValue);
  1074. if (size == num) {
  1075. logger.log(LogStatus.PASS, "All required fields are disabled on Size Page while returning");
  1076. S_ASSERT.assertTrue(true);
  1077. } else {
  1078. TS = TakeScreenshot.CaptureScreen(driver, "validateFieldsDisabled");
  1079. logger.log(LogStatus.FAIL, "Fields are not disabled " + logger.addScreenCapture(TS));
  1080. S_ASSERT.assertTrue(false);
  1081. }
  1082. return driver;
  1083. }
  1084. public static WebDriver validateHelpTextOnPage1(WebDriver driver, String path, ExtentTest logger, String fieldName,
  1085. String helpTxt, String excelName, String sheetName, int row)
  1086. throws InterruptedException, EncryptedDocumentException, InvalidFormatException, IOException {
  1087. excel(excelName);
  1088. int rowcount = excel.getColumnRowCount(sheetName, helpTxt);
  1089. rowcount = rowcount + 2;
  1090. for (int i = 2; i < rowcount; i++) {
  1091. String fieldValue = excel.getCellData(sheetName, helpTxt, i);
  1092. String fieldNames = excel.getCellData(sheetName, fieldName, i);
  1093. String strXpath = "//label[text()='" + fieldNames + "']//ancestor::div[@class='field-height']//lightning-helptext";
  1094. WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(1000));
  1095. WebElement element=wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(strXpath)));
  1096. UtilMethods.verifyElementPresent(logger, driver, driver.findElements(By.xpath(strXpath)));
  1097. ((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element);
  1098. UtilMethods.clickOn(logger, element, "Field Name Clicked");
  1099. Thread.sleep(2000);
  1100. List<WebElement> fields = driver.findElements(By.xpath("//div[text()='" + fieldValue + "']"));
  1101. if (fields.size() > 0) {
  1102. logger.log(LogStatus.PASS, "Expected Help Text is Present " + fieldValue);
  1103. S_ASSERT.assertTrue(true);
  1104. } else {
  1105. TS = TakeScreenshot.CaptureScreen(driver, "validateHelpTextOnOpps");
  1106. logger.log(LogStatus.FAIL,
  1107. "Expected Help Text is not Present " + fieldValue + logger.addScreenCapture(TS));
  1108. S_ASSERT.assertTrue(false);
  1109. }
  1110. }
  1111. return driver;
  1112. }
  1113. public static WebDriver validateThePageName(WebDriver driver, String path, ExtentTest logger, String pageName,
  1114. String excelName, String sheetName, int row)
  1115. throws InterruptedException, EncryptedDocumentException, InvalidFormatException, IOException {
  1116. excel(excelName);
  1117. String pgName = excel.getCellData(sheetName, pageName, row);
  1118. List<WebElement> page = driver.findElements(By.xpath("//li[contains(@aria-label,'" + pgName + "Current.')]|//li[contains(@aria-label,'Current.')]"));
  1119. logger.log(LogStatus.INFO, "Page Name is correct " + page);
  1120. System.out.println("Page Name is correct" +page);
  1121. if (page.size() == 1) {
  1122. logger.log(LogStatus.PASS, "Page Name is correct" + pgName);
  1123. S_ASSERT.assertTrue(true);
  1124. } else {
  1125. TS = TakeScreenshot.CaptureScreen(driver, "validateThePageName");
  1126. logger.log(LogStatus.FAIL, "Page Name is not correct " + pgName + logger.addScreenCapture(TS));
  1127. S_ASSERT.assertTrue(false);
  1128. }
  1129. return driver;
  1130. }
  1131. public static WebDriver validateTextOnQualifyPg(WebDriver driver, String path, ExtentTest logger,
  1132. String headingQues, String secondaryQues, String excelName, String sheetName, int row)
  1133. throws InterruptedException, EncryptedDocumentException, InvalidFormatException, IOException {
  1134. Thread.sleep(15000);
  1135. excel(excelName);
  1136. int rowcount = excel.getColumnRowCount(sheetName, headingQues);
  1137. rowcount = rowcount + 2;
  1138. logger.log(LogStatus.INFO, "rowcount " + rowcount);
  1139. for (int i = 2; i < rowcount; i++) {
  1140. String textValue = excel.getCellData(sheetName, headingQues, i);
  1141. List<WebElement> fields = driver.findElements(
  1142. By.xpath("//div[@c-oppcreatedqclineitem_oppcreatedqclineitem]//span[text()='" + textValue + "']"));
  1143. if (fields.size() == 1) {
  1144. logger.log(LogStatus.PASS, " Correct headingQues is visible on UI on Qualify Page" + textValue);
  1145. S_ASSERT.assertTrue(true);
  1146. } else {
  1147. TS = TakeScreenshot.CaptureScreen(driver, "validateTextOnQualifyPg");
  1148. logger.log(LogStatus.FAIL,
  1149. "Correct headingQues is not visible on UI " + textValue + logger.addScreenCapture(TS));
  1150. S_ASSERT.assertTrue(false);
  1151. }
  1152. }
  1153. int rowcount2 = excel.getColumnRowCount(sheetName, secondaryQues);
  1154. rowcount2 = rowcount2 + 2;
  1155. for (int i = 2; i < rowcount2; i++) {
  1156. String textValue = excel.getCellData(sheetName, secondaryQues, i);
  1157. List<WebElement> fields = driver.findElements(
  1158. By.xpath("//div[@c-oppcreatedqclineitem_oppcreatedqclineitem]//span[text()='" + textValue + "']"));
  1159. if (fields.size() == 1) {
  1160. logger.log(LogStatus.PASS, " Correct secondaryQues is visible on UI on Qualify Page" + textValue);
  1161. S_ASSERT.assertTrue(true);
  1162. } else {
  1163. TS = TakeScreenshot.CaptureScreen(driver, "validateTextOnQualifyPg - secondaryQues");
  1164. logger.log(LogStatus.FAIL,
  1165. "Correct secondaryQues is not visible on UI " + textValue + logger.addScreenCapture(TS));
  1166. S_ASSERT.assertTrue(false);
  1167. }
  1168. }
  1169. return driver;
  1170. }
  1171. public static WebDriver validateResponseTextForDQC(WebDriver driver, String path, ExtentTest logger,
  1172. String headingQues, String responseHeading, String strong, String moderate, String weak, String excelName,
  1173. String sheetName, int row)
  1174. throws InterruptedException, EncryptedDocumentException, InvalidFormatException, IOException {
  1175. Thread.sleep(10000);
  1176. excel(excelName);
  1177. int rowcount = excel.getColumnRowCount(sheetName, headingQues);
  1178. rowcount = rowcount + 2;
  1179. for (int i = 2; i < rowcount; i++) {
  1180. String headingValue = excel.getCellData(sheetName, headingQues, i);
  1181. String responseValue = excel.getCellData(sheetName, responseHeading, i);
  1182. String strongValue = excel.getCellData(sheetName, strong, i);
  1183. String moderateValue = excel.getCellData(sheetName, moderate, i);
  1184. String weakvalue = excel.getCellData(sheetName, weak, i);
  1185. WebElement field1 = driver.findElement(By
  1186. .xpath("//div[@c-oppcreatedqclineitem_oppcreatedqclineitem]//span[text()='" + headingValue + "']"));
  1187. //UtilMethods.clickOn(logger, field1, "textValue");
  1188. UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, field1, "textValue");
  1189. Thread.sleep(5000);
  1190. // Validating Response Heading
  1191. List<WebElement> response = driver.findElements(By.xpath("//slot//div[text()='" + responseValue + "']"));
  1192. if (response.size() == 1) {
  1193. logger.log(LogStatus.PASS, " Correct responseHeading is visible on UI on Qualify Page " + responseValue );
  1194. S_ASSERT.assertTrue(true);
  1195. } else {
  1196. TS = TakeScreenshot.CaptureScreen(driver, "validateTextOnQualifyPg");
  1197. logger.log(LogStatus.FAIL,
  1198. "Correct responseHeading is not visible on UI " + responseValue + logger.addScreenCapture(TS));
  1199. S_ASSERT.assertTrue(false);
  1200. }
  1201. // Validating Strong text
  1202. List<WebElement> strongTxt = driver.findElements(By.xpath("//slot//div[text()='" + strongValue + "']"));
  1203. if (strongTxt.size() == 1) {
  1204. logger.log(LogStatus.PASS, " Correct strongTxt is visible on UI on Qualify Page " + strongValue);
  1205. S_ASSERT.assertTrue(true);
  1206. } else {
  1207. TS = TakeScreenshot.CaptureScreen(driver, "validateTextOnQualifyPg");
  1208. logger.log(LogStatus.FAIL,
  1209. "Correct strongTxt is not visible on UI " + strongValue + logger.addScreenCapture(TS));
  1210. S_ASSERT.assertTrue(false);
  1211. }
  1212. // Validating Moderate Text
  1213. List<WebElement> modTxt = driver.findElements(By.xpath("//slot//div[text()='" + moderateValue + "']"));
  1214. if (modTxt.size() == 1) {
  1215. logger.log(LogStatus.PASS, " Correct modTxt is visible on UI on Qualify Page " + moderateValue);
  1216. S_ASSERT.assertTrue(true);
  1217. } else {
  1218. TS = TakeScreenshot.CaptureScreen(driver, "validateTextOnQualifyPg");
  1219. logger.log(LogStatus.FAIL,
  1220. "Correct modTxt is not visible on UI " + moderateValue + logger.addScreenCapture(TS));
  1221. S_ASSERT.assertTrue(false);
  1222. }
  1223. // Validating Weak text
  1224. logger.log(LogStatus.INFO, "Weak value " + weakvalue);
  1225. if (weakvalue.equals(
  1226. "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.")) {
  1227. String weakData[] = weakvalue.split("'");
  1228. logger.log(LogStatus.INFO, "Weak value 1 " + weakData[0]);
  1229. logger.log(LogStatus.INFO, "Weak value 2 " + weakData[1]);
  1230. List<WebElement> fields = driver.findElements(By.xpath("//slot//div[contains(text(),'" + weakData[0]
  1231. + "') and contains(text(),'" + weakData[1] + "')]"));
  1232. if (fields.size() == 1) {
  1233. logger.log(LogStatus.PASS, " Correct weakvalue is visible on UI on Qualify Page" + weakvalue);
  1234. S_ASSERT.assertTrue(true);
  1235. } else {
  1236. TS = TakeScreenshot.CaptureScreen(driver, "validateTextOnQualifyPg");
  1237. logger.log(LogStatus.FAIL,
  1238. "Correct weakvalue is not visible on UI " + weakvalue + logger.addScreenCapture(TS));
  1239. S_ASSERT.assertTrue(false);
  1240. }
  1241. } else {
  1242. List<WebElement> weakTxt = driver.findElements(By.xpath("//slot//div[text()='" + weakvalue + "']"));
  1243. if (weakTxt.size() == 1) {
  1244. logger.log(LogStatus.PASS, " Correct weakvalue is visible on UI on Qualify Page");
  1245. S_ASSERT.assertTrue(true);
  1246. } else {
  1247. if(weakvalue.equals(
  1248. "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.")) {
  1249. 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.')]"));
  1250. if (weakTxt1.size() == 1) {
  1251. logger.log(LogStatus.PASS, " Correct weakvalue is visible on UI on Qualify Page" + weakvalue);
  1252. S_ASSERT.assertTrue(true);}}
  1253. else{
  1254. TS = TakeScreenshot.CaptureScreen(driver, "validateTextOnQualifyPg");
  1255. logger.log(LogStatus.FAIL,
  1256. "Correct weakvalue is not visible on UI " + weakvalue + logger.addScreenCapture(TS));
  1257. S_ASSERT.assertTrue(false);
  1258. }
  1259. }
  1260. }
  1261. }
  1262. Thread.sleep(5000);
  1263. return driver;
  1264. }
  1265. public static WebDriver validateHeadingsOnQualifyPg(WebDriver driver, String path, ExtentTest logger,
  1266. String heading, String overallHeading, String excelName, String sheetName, int row)
  1267. throws InterruptedException, EncryptedDocumentException, InvalidFormatException, IOException {
  1268. Thread.sleep(25000);
  1269. excel(excelName);
  1270. int rowcount = excel.getColumnRowCount(sheetName, heading);
  1271. System.out.println(rowcount);
  1272. rowcount = rowcount + 2;
  1273. logger.log(LogStatus.INFO, "The size of rowcount is: " + rowcount);
  1274. for (int i = 2; i < rowcount; i++) {
  1275. String textValue = excel.getCellData(sheetName, heading, i);
  1276. List<WebElement> fields = driver
  1277. .findElements(By.xpath("//div[@class='overallContainer']//h2[text()='" + textValue + "']"));
  1278. System.out.println(fields.size());
  1279. if (fields.size() == 1) {
  1280. logger.log(LogStatus.INFO, "The size of fields is: " + fields.size());
  1281. logger.log(LogStatus.PASS, " Correct Heading is visible on Qualify Page" + textValue);
  1282. S_ASSERT.assertTrue(true);
  1283. } else {
  1284. TS = TakeScreenshot.CaptureScreen(driver, "validateHeadingsOnQualifyPg");
  1285. logger.log(LogStatus.FAIL,
  1286. "Correct Heading is not visible on Qualify Page " + textValue + logger.addScreenCapture(TS));
  1287. S_ASSERT.assertTrue(false);
  1288. }
  1289. }
  1290. String textValue = excel.getCellData(sheetName, overallHeading, 2);
  1291. List<WebElement> fields = driver
  1292. .findElements(By.xpath("//div[@class='overallContainer']//span[text()='" + textValue + "']"));
  1293. if (fields.size() == 1) {
  1294. logger.log(LogStatus.PASS, " Correct overallHeading is visible on Qualify Page" + textValue);
  1295. S_ASSERT.assertTrue(true);
  1296. } else {
  1297. TS = TakeScreenshot.CaptureScreen(driver, "validateHeadingsOnQualifyPg" + textValue);
  1298. logger.log(LogStatus.FAIL,
  1299. "Correct overallHeading is not visible on Qualify Page " + textValue + logger.addScreenCapture(TS));
  1300. S_ASSERT.assertTrue(false);
  1301. }
  1302. return driver;
  1303. }
  1304. public static WebDriver addISSafterOppCreate(WebDriver driver, String path, ExtentTest logger,
  1305. String issValue, String overallHeading, String excelName, String sheetName, int row)
  1306. throws InterruptedException, EncryptedDocumentException, InvalidFormatException, IOException {
  1307. Thread.sleep(25000);
  1308. excel(excelName);
  1309. int rowcount = excel.getColumnRowCount(sheetName, issValue);
  1310. for (int i = 0; i < rowcount; i++)
  1311. {
  1312. String textValue = excel.getCellData(sheetName, issValue, i);
  1313. List<WebElement> fields = driver
  1314. .findElements(By.xpath("//div[@class='overallContainer']//h2[text()='" + textValue + "']"));
  1315. if (fields.size() == 1) {
  1316. logger.log(LogStatus.PASS, " Correct Heading is visible on Qualify Page" + textValue);
  1317. S_ASSERT.assertTrue(true);
  1318. } else {
  1319. TS = TakeScreenshot.CaptureScreen(driver, "validateHeadingsOnQualifyPg");
  1320. logger.log(LogStatus.FAIL,
  1321. "Correct Heading is not visible on Qualify Page " + textValue + logger.addScreenCapture(TS));
  1322. S_ASSERT.assertTrue(false);
  1323. }
  1324. }
  1325. String textValue = excel.getCellData(sheetName, overallHeading, 2);
  1326. List<WebElement> fields = driver
  1327. .findElements(By.xpath("//div[@class='overallContainer']//span[text()='" + textValue + "']"));
  1328. if (fields.size() == 1) {
  1329. logger.log(LogStatus.PASS, " Correct overallHeading is visible on Qualify Page" + textValue);
  1330. S_ASSERT.assertTrue(true);
  1331. } else {
  1332. TS = TakeScreenshot.CaptureScreen(driver, "validateHeadingsOnQualifyPg" + textValue);
  1333. logger.log(LogStatus.FAIL,
  1334. "Correct overallHeading is not visible on Qualify Page " + textValue + logger.addScreenCapture(TS));
  1335. S_ASSERT.assertTrue(false);
  1336. }
  1337. return driver;
  1338. }
  1339. //Created by Neeraja
  1340. public static WebDriver CreateDuplicateTab(WebDriver driver, ExtentTest logger) throws InterruptedException {
  1341. String currentURL = driver.getCurrentUrl();
  1342. ((JavascriptExecutor) driver).executeScript("window.open('" + currentURL + "');");
  1343. Thread.sleep(2000);
  1344. logger.log(LogStatus.PASS, "Duplicate tab is created");
  1345. System.out.println("Duplicate tab is created");
  1346. return driver;
  1347. }
  1348. //Created by Neeraja
  1349. public static WebDriver validateArrowsEnabled(WebDriver driver, String path, ExtentTest logger,
  1350. WebElement forwardArrow,WebElement BackwardArrow, String sheetName, int row) throws InterruptedException {
  1351. if(forwardArrow.isEnabled() && BackwardArrow.isEnabled()) {
  1352. logger.log(LogStatus.PASS, "Both Arrows are enabled" );
  1353. S_ASSERT.assertTrue(true);
  1354. }
  1355. else {
  1356. String TS = TakeScreenshot.CaptureScreen(driver, "Both Arrows are not present");
  1357. logger.log(LogStatus.FAIL, "Both Arrows are not present" + logger.addScreenCapture(TS));
  1358. S_ASSERT.assertTrue(false);
  1359. }
  1360. return driver;
  1361. }
  1362. //Created by Neeraja
  1363. public static WebDriver validateCRDisabled(WebDriver driver, String path, ExtentTest logger, String excelName,
  1364. String sheetName, int row) throws InterruptedException {
  1365. List<WebElement> btnSize = driver
  1366. .findElements(By.xpath("//button[@disabled]//following::label[text()='Customer Relationship']"));
  1367. int size = btnSize.size();
  1368. if (size > 0) {
  1369. logger.log(LogStatus.PASS, "CR field Disabled");
  1370. S_ASSERT.assertTrue(true);
  1371. } else {
  1372. TS = TakeScreenshot.CaptureScreen(driver, "validateCRFieldDisabled");
  1373. logger.log(LogStatus.FAIL, "CR field enabled" + logger.addScreenCapture(TS));
  1374. S_ASSERT.assertTrue(false);
  1375. }
  1376. return driver;
  1377. }
  1378. public static WebDriver validateOnsaveMsg(WebDriver driver, String path, ExtentTest logger,
  1379. String errorMsg, String excelName, String sheetName, int row) throws InterruptedException {
  1380. excel(excelName);
  1381. String ErrorMsg;
  1382. Thread.sleep(3000);
  1383. ErrorMsg = excel.getCellData(sheetName, errorMsg, row);
  1384. List<WebElement> errorMessage1 = driver.findElements(By.xpath("//div[text()='" + ErrorMsg + "']"));
  1385. int size = errorMessage1.size();
  1386. if (size > 0) {
  1387. logger.log(LogStatus.PASS, "On-save validation is present");
  1388. S_ASSERT.assertTrue(true);
  1389. } else {
  1390. TS = TakeScreenshot.CaptureScreen(driver, "On-save validation is not present");
  1391. logger.log(LogStatus.FAIL, "On-save validation is not present" + logger.addScreenCapture(TS));
  1392. S_ASSERT.assertTrue(false);
  1393. }
  1394. return driver;
  1395. }
  1396. public static WebDriver RemoveISS(WebDriver driver, String path, ExtentTest logger, String excelName,
  1397. String sheetName, int row) throws InterruptedException {
  1398. List<WebElement> removeISS= driver
  1399. .findElements(By.xpath("//span[contains(@aria-label,'remove')]"));
  1400. if (removeISS.size() == 1) {
  1401. UtilMethods.clickOn(logger, removeISS.get(0), "Remove ISS");
  1402. logger.log(LogStatus.PASS, "ISS values deleted");
  1403. S_ASSERT.assertTrue(true);
  1404. } else {
  1405. TS = TakeScreenshot.CaptureScreen(driver, "Remove ISS");
  1406. logger.log(LogStatus.FAIL, "ISS is not deleted" + logger.addScreenCapture(TS));
  1407. S_ASSERT.assertTrue(false);
  1408. }
  1409. return driver;
  1410. }
  1411. public static WebDriver ValidateISSIsBlank(WebDriver driver, String path, ExtentTest logger,
  1412. String charAttribute,String excelName, String sheetName, int row)
  1413. throws InterruptedException, IOException, EncryptedDocumentException, InvalidFormatException {
  1414. excel(excelName);
  1415. int rowCount = excel.getColumnRowCount(sheetName, charAttribute);
  1416. System.out.println("rowCount is "+rowCount);
  1417. logger.log(LogStatus.INFO, "Total number of rows:" + rowCount);
  1418. MethodFactory.clickTheRespectiveButtonByJavaScriptExecutor(driver, path, logger,
  1419. rt_OpportunityClonePage.attributesLinkOnOppPage, "Attributes page");
  1420. Thread.sleep(2000);
  1421. MethodFactory.switchBetweenTabs(driver, path, logger, 1);
  1422. UtilMethods.waitTillElementIsVisible(logger, driver, cancelButtonOnAttributePage);
  1423. for (int i = 0; i < rowCount; i++) {
  1424. String charAttributeData = excel.getCellData(sheetName, charAttribute, row);
  1425. String CategoryVar=null;
  1426. //For finding the category name we are writing this If condition
  1427. if (charAttributeData.equalsIgnoreCase("Industry Offerings")||charAttributeData.equalsIgnoreCase("Industry Sub Segment")) {
  1428. CategoryVar="Industry";
  1429. System.out.println("CategoryVar is "+CategoryVar);
  1430. }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")) {
  1431. CategoryVar="Cross Services";
  1432. System.out.println("CategoryVar is "+CategoryVar);
  1433. }else if (charAttributeData.equalsIgnoreCase("Industry X")||charAttributeData.equalsIgnoreCase("Song")||charAttributeData.equalsIgnoreCase("Security")){
  1434. CategoryVar="Services";
  1435. System.out.println("CategoryVar is "+CategoryVar);
  1436. }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")){
  1437. CategoryVar="Enterprise Functions";
  1438. System.out.println("CategoryVar is "+CategoryVar);
  1439. }else if (charAttributeData.equalsIgnoreCase("Solutions")||charAttributeData.equalsIgnoreCase("Assets")){
  1440. CategoryVar="Solutions & Assets";
  1441. System.out.println("CategoryVar is "+CategoryVar);
  1442. }
  1443. String strXpath1 = "//div[text()='" + CategoryVar+ "']";
  1444. UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger,
  1445. driver.findElement(By.xpath(strXpath1)), CategoryVar);
  1446. if (ExpandAllButton.size()==1) {
  1447. UtilMethods.clickTheRespectiveButtonByJavaScriptExecutor(driver, logger, ExpandAllButton.get(0),
  1448. charAttributeData + " Expand All");
  1449. Thread.sleep(3000);
  1450. }
  1451. List<WebElement> crossIconAttributePage1 = driver.findElements(By.xpath(
  1452. "//div[contains(text(),'" +charAttributeData+ "')]/preceding-sibling::lightning-icon/ancestor::details//span[contains(@class,'remove')]"));
  1453. if (crossIconAttributePage1.size() ==0) {
  1454. logger.log(LogStatus.PASS, "ISS values deleted");
  1455. S_ASSERT.assertTrue(true);
  1456. } else {
  1457. TS = TakeScreenshot.CaptureScreen(driver, "Attribute is present");
  1458. logger.log(LogStatus.FAIL, "Attribute is present" + logger.addScreenCapture(TS));
  1459. S_ASSERT.assertTrue(false);
  1460. }}
  1461. return driver;
  1462. }
  1463. public static WebDriver validateSellingCountryValue(WebDriver driver, String path, ExtentTest logger,
  1464. String fieldValue,String excelName, String sheetName, int row) throws InterruptedException {
  1465. excel(excelName);
  1466. String fieldValueData = excel.getCellData(sheetName, fieldValue, row);
  1467. WebElement SellingCountry1 = driver.findElement(By.xpath("//label[text()='Selling Country/Location']//ancestor::lightning-picklist//span[contains(text(),'" + fieldValueData+ "')]"));
  1468. String UIValue = SellingCountry1.getText();
  1469. if (UIValue.equals(fieldValueData)) {
  1470. String TS = TakeScreenshot.CaptureScreen(driver, "validateSellingCountryFieldValue");
  1471. logger.log(LogStatus.PASS, "Field Value is as expected:--excel data is:--"
  1472. + fieldValueData + "---UI Data is :--" + SellingCountry1.getText()
  1473. + logger.addScreenCapture(TS));
  1474. System.out.println("PASS--->Field Value is as expected:--excel data is:--"
  1475. + fieldValueData + "---UI Data is :--" + SellingCountry1.getText()+"---");
  1476. S_ASSERT.assertTrue(true);
  1477. } else {
  1478. logger.log(LogStatus.FAIL,
  1479. "Field value is not as expected: --excel data is:--"
  1480. + fieldValueData + "---UI Data is :--" + SellingCountry1.getText()
  1481. + logger.addScreenCapture(TS));
  1482. System.out.println("Fail--->Field Value is not as expected:--:--excel data is:--"
  1483. + fieldValueData + "---UI Data is :--" + SellingCountry1.getText() + "---");
  1484. S_ASSERT.assertTrue(false);
  1485. }
  1486. return driver;
  1487. }}