public void JoinSkypeMeetingFromOutlook() { //string testResultsOutFolerPath = System.IO.Directory.GetCurrentDirectory(); //int posA = testResultsOutFolerPath.IndexOf("TestResults"); //string filePath = testResultsOutFolerPath.Substring(0, posA); int catchiteration = 0; try { for (int iteration = 1; iteration <= data_rows; iteration++) { catchiteration = iteration; string sr = globalFunctions.GetLine(DataPath + "JoinSkypeMeeting.csv", iteration); string[] values = sr.Split(','); // Launch Outlook WinWindow Outlook = globalFunctions.GetWindowByNameAndClassName(values[0].ToString() + " - Outlook", objOutlookclassname, iteration); ////Send a Skype meeting request Outlook.SetFocus(); //Click on Mail globalFunctions.WinGroupButtonClickByName(Outlook, objNavigation, objMail, iteration); //Click on NewItems Drop down button WinWindow newitemwindow = globalFunctions.GetWindowByPrentAccessibleNameAndClassName(Outlook, objFileAccessibleName, objSeeContactCardMenuItem, iteration, "NewItems Window"); globalFunctions.ClickOnToolBarDropDownButton(newitemwindow, objNew, objNewItems, values[0].ToString() + " - Outlook", iteration); // Click on Skype meeting globalFunctions.WinMenuItemClickByNameAndParent(newitemwindow, objSkypeMeeting, iteration); //Check Reminder window exist or not if (globalFunctions.GetWindowByNameAndClassNameIfWindowExist(objReminder, objMicrosoftClassName, iteration, "reminderwindow")) { //Click on Dismiss all WinWindow reminder = globalFunctions.GetWindowByNameAndClassName(objReminder, objMicrosoftClassName, iteration, "reminderwindow"); WinWindow subreminderwindow = globalFunctions.GetWindowByParentControlId(reminder, objReminderControlId, iteration, "subreminderwindow"); globalFunctions.WinButtonClickByName(subreminderwindow, "Dismiss All", iteration); //Click on Yes WinWindow Yes = globalFunctions.GetWindowByNameAndClassName(objMicrosoftOutlook, objMicrosoftClassName, iteration, "Micrososftwindow"); WinWindow subMicrosoftwindow = globalFunctions.GetWindowByControlIdAndTitle(Yes, objYesControlId, objMicrosoftOutlook, iteration, "subMicrososftwindow"); globalFunctions.WinButtonExistClick(subMicrosoftwindow, objYesButton, objMicrosoftOutlook, iteration); } //Enter the To address WinWindow meetingwindow = globalFunctions.GetWindowByNameAndClassName(objUntitledMeeting, objOutlookclassname, iteration); WinWindow submeetingwindow = globalFunctions.GetWindowByPrentAccessibleNameAndClassName(meetingwindow, objFileAccessibleName, objSeeContactCardMenuItem, iteration, "To: address"); globalFunctions.WinEditByName(submeetingwindow, objTo, values[1].ToString(), iteration, "To address "); Random rnd = new Random(); int Value = rnd.Next(1000, 1000000); //Enter the subject WinWindow subjectwindow = globalFunctions.GetWindowByParentControlId(meetingwindow, objMeetinControlId, iteration, "Subject window"); globalFunctions.WinEditByName(subjectwindow, objSubjectname, values[2].ToString() + Value, iteration, "Subject"); // string time = DateTime.Now.ToString("hh:mm"); // current date string date = DateTime.Today.ToString("MM/dd/yyyy"); // add 3 minutes to the current time DateTime localTime = DateTime.Now.AddMinutes(3); string startTime24Hour = localTime.ToString("HH:mm", CultureInfo.CurrentCulture); //add 30 minutes to the current time DateTime time = DateTime.Now.AddMinutes(30); string endTime24Hour = time.ToString("HH:mm", System.Globalization.CultureInfo.CurrentCulture); //Enter the today's date(START DATE) WinWindow subjectmeetingwindow = globalFunctions.GetWindowByNameAndClassName(" - Meeting ", objOutlookclassname, iteration); WinWindow subjectmeetingsubwindow = globalFunctions.GetWindowByParentControlId(subjectmeetingwindow, objStartDateControlId, iteration, "Start date window"); globalFunctions.WinEditByName(subjectmeetingsubwindow, objStartDate, date, iteration, "Start Date"); //Enter the start time + 3 minutes(START TIME) WinWindow subjectmeetingstarttimewindow = globalFunctions.GetWindowByParentControlId(subjectmeetingwindow, objStartTimeControlId, iteration, "Start time window"); globalFunctions.WinEditByName(subjectmeetingstarttimewindow, objStartTime, startTime24Hour, iteration, "Start time"); //Enter the today's date(END DATE) // WinWindow subjectmeetingwindow = globalFunctions.GetWindowByNameAndClassName("SFB - Meeting ", "rctrl_renwnd32", iteration); WinWindow enddatewindow = globalFunctions.GetWindowByParentControlId(subjectmeetingwindow, objEmailControlId, iteration, "End date window"); globalFunctions.WinEditByName(enddatewindow, objEndDate, date, iteration, "End date"); //WinWindow obj=globalFunctions.GetWindowByName("Microsoft Outlook",1); if (globalFunctions.GetWindowByNameAndClassNameIfWindowExist("Microsoft Outlook", "#32770", 1)) { WinWindow microsoftOutlookWindowPopUp = new WinWindow(); microsoftOutlookWindowPopUp.SearchProperties.Add(WinWindow.PropertyNames.Name, "Microsoft Outlook"); microsoftOutlookWindowPopUp.SetFocus(); WinWindow OKWindowPopUp = new WinWindow(microsoftOutlookWindowPopUp); OKWindowPopUp.SearchProperties.Add(WinWindow.PropertyNames.ControlType, "Window"); OKWindowPopUp.SearchProperties.Add(WinWindow.PropertyNames.ControlId, "2"); WinButton OKButton = new WinButton(OKWindowPopUp); OKButton.SearchProperties.Add(WinWindow.PropertyNames.Name, "OK"); Mouse.Click(OKButton); //Adding 5 minutes to the local time time = localTime.AddMinutes(5); endTime24Hour = time.ToString("HH:mm", System.Globalization.CultureInfo.CurrentCulture);//"23:45"; // Enter End time WinWindow subjectmeetingendtimewindow = globalFunctions.GetWindowByParentControlId(subjectmeetingwindow, objEndTimeControlId, iteration, "End time window"); globalFunctions.WinEditByName(subjectmeetingendtimewindow, objEndTime, endTime24Hour, iteration, "End time"); //Enter the today's date(END DATE) enddatewindow = globalFunctions.GetWindowByParentControlId(subjectmeetingwindow, objEmailControlId, iteration, "End date window"); globalFunctions.WinEditByName(enddatewindow, objEndDate, date, iteration, "End date"); } else { WinWindow subjectmeetingendtimewindow = globalFunctions.GetWindowByParentControlId(subjectmeetingwindow, objEndTimeControlId, iteration, "End time window"); globalFunctions.WinEditByName(subjectmeetingendtimewindow, objEndTime, endTime24Hour, iteration, "End time"); } //Click on Send button WinWindow sendwindow = globalFunctions.GetWindowByParentControlId(subjectmeetingwindow, objSendControlId, iteration, "Send window"); globalFunctions.WinButtonClickByName(sendwindow, objSendname, iteration); ////Join meeting after getting the invitation Outlook.SetFocus(); //Check Reminder window exist or not if (globalFunctions.GetWindowByNameAndClassNameIfWindowExist(objReminder, objMicrosoftClassName, iteration, "reminderwindow")) { //Click on Dismiss all WinWindow reminder = globalFunctions.GetWindowByNameAndClassName(objReminder, objMicrosoftClassName, iteration, "reminderwindow"); WinWindow subreminderwindow = globalFunctions.GetWindowByParentControlId(reminder, objReminderControlId, iteration, "subreminderwindow"); globalFunctions.WinButtonClickByName(subreminderwindow, "Dismiss All", iteration); //Click on Yes WinWindow Yes = globalFunctions.GetWindowByNameAndClassName(objMicrosoftOutlook, objMicrosoftClassName, iteration, "Micrososftwindow"); WinWindow subMicrosoftwindow = globalFunctions.GetWindowByControlIdAndTitle(Yes, objYesControlId, objMicrosoftOutlook, iteration, "subMicrososftwindow"); globalFunctions.WinButtonExistClick(subMicrosoftwindow, objYesButton, objMicrosoftOutlook, iteration); } //Click on Calendar globalFunctions.WinGroupButtonClickByName(Outlook, objNavigation, objCalendar, iteration); // Click on Go To ToolBar globalFunctions.ClickOnToolBarButton(newitemwindow, objGoTo, objGoToDate, iteration); //Enter the date WinWindow gotowindow = globalFunctions.GetWindowByNameAndClassName(objGoTodate, objMicrosoftClassName, iteration); WinWindow gotodatewindow = globalFunctions.GetWindowByParentControlId(gotowindow, objStartTimeControlId, iteration, "Go To Date Sub window"); globalFunctions.WinEditByNameWithOutPassingEnterKey(gotodatewindow, objDate, date, iteration, "Date:"); // globalFunctions.WinEditByName(gotodatewindow, "Date:", date, iteration); //Select Day Calendar WinWindow gotoselectwindow = globalFunctions.GetWindowByParentControlId(gotowindow, objSelectControlId, iteration, "Go To Select window"); globalFunctions.GetComboBoxSelecetedItemSelectComboBox(gotoselectwindow, objShowin, objGoTodate, objDayCalendar, iteration, "Day Calender"); //Click on OK button WinWindow OKwindow = globalFunctions.GetWindowByParentControlId(gotowindow, objOKSubWindowDialogControlId, iteration, " OK Window"); globalFunctions.WinButtonClickByName(OKwindow, objOKButton, iteration); //select the meeting string month = DateTime.Now.ToString("MMMM"); string todaydate = DateTime.Today.ToString("dd"); string presentyear = DateTime.Today.ToString("yyyy"); if (todaydate.StartsWith("0")) { // todaydate.Trim(); todaydate = todaydate.Remove(0, 1); } var tomdate = DateTime.Now.AddDays(1); //Click On Search Bar and enter Meeting ID WinWindow calendarWindow = globalFunctions.GetWindowByNameAndClassNameWithoutTitle(objScheduleAMeeting, objOutlookclassname, iteration); globalFunctions.WinClientAndEdit(calendarWindow, objSearchQuery, objOutlookclassname, values[2].ToString() + Value, iteration); //Select the meeting from Calender // globalFunctions.ClickOnListItem(Outlook, todaydate, month, presentyear, startTime24Hour, endTime24Hour, Value, values[0].ToString(), values[2].ToString(), values[3].ToString(), iteration); //Click on join skype meeting WinWindow win = globalFunctions.GetWindowByNameAndClassNameWithoutTitle(values[2].ToString() + Value, objOutlookclassname, iteration); WinWindow win1 = globalFunctions.GetWindowByPrentAccessibleNameAndClassName(win, objFileAccessibleName, objSeeContactCardMenuItem, iteration); globalFunctions.ClickOnToolBarButton(win1, objSkypeMeeting, objJoinSkypeMeeting, iteration); //Minimize WinWindow SkypeForBusiness = globalFunctions.GetWindowByName(NGW_SharePoint.Utility.Constants.SFBName, iteration); globalFunctions.WinButtonClickByParentClassNameAndButtonName(SkypeForBusiness, objSeeContactCardMenuItem, objMinimize, 1); //Click on OK Button on Join Meeting Audio window if (globalFunctions.GetWindowByNameAndClassNameIfWindowExist(objJoinMeetingAudio, objSkypeWindowClassName, iteration)) { WinWindow JoinMeetingAudio = globalFunctions.GetWindowByNameAndClassName(objJoinMeetingAudio, objSkypeWindowClassName, iteration); globalFunctions.WinDialogClickByName(JoinMeetingAudio, objJoinMeetingAudio, objOKButton, iteration); } System.Threading.Thread.Sleep(2000); ////To Open and maximize remote window //System.Windows.Forms.SendKeys.SendWait("%{TAB}"); //citrix window //Click On Remote window Icon WinWindow citrixwindow = globalFunctions.GetWindowByNameAndClassName(objtoolbarname, objwindowclassname, iteration); if (objSkypeversion == values2[0]) { // click on the icon globalFunctions.ClickOnToolBarButton(citrixwindow, objtoolbarname, values2[5].ToString(), iteration); } else { SampleTestObjectRepository2016 sample = new SampleTestObjectRepository2016(); globalFunctions.ClickOnToolBarButton(citrixwindow, objtoolbarname, sample.objRemoteDesktopConnection, iteration); } WinWindow maximizeWindow = globalFunctions.GetWindowByNameAndClassName(values2[5].ToString(), objRemWindowMaxClassNAme, iteration); globalFunctions.ClickOnWindowButtonIfExist(maximizeWindow, objMaximize, iteration); //Click on Join Online System.Threading.Thread.Sleep(4000); // Minimize Skype bool exist1 = false; bool exist = globalFunctions.SearchInCitrixWindow(values2[5].ToString(), filePath + "Images\\SkypeForBusiness.png", 0.90f, 0, iteration, "SkypeForBusiness"); if (!exist) { exist1 = globalFunctions.SearchInCitrixWindow(values2[5].ToString(), filePath + "Images\\AlternativeSkypeForBusiness.png", 0.90f, 2, iteration, "AlternativeSkypeForBusiness"); } if (exist == true || exist1 == true) { bool exist3 = globalFunctions.SearchInCitrixWindowAndDoubleClick(values2[5].ToString(), filePath + "Images\\Minimize.png", 0.90f, 0, iteration, "Minimize"); if (!exist3) { bool exist4 = globalFunctions.SearchInCitrixWindowAndDoubleClick(values2[5].ToString(), filePath + "Images\\AlternativeMinimize.png", 0.92f, 2, iteration, "AlternativeMinimize"); if (!exist4) { bool exist17 = globalFunctions.SearchInCitrixWindowAndDoubleClick(values2[5].ToString(), filePath + "Images\\Alternative1Minimize.png", 0.92f, 2, iteration, "Aletrnative1Minimize"); if (!exist17) { globalFunctions.SearchInCitrixWindowAndDoubleClick(values2[5].ToString(), filePath + "Images\\AlternativeMinimize2.png", 0.92f, 2, iteration, "AletrnativeMinimize2"); } } } } System.Threading.Thread.Sleep(5000); //Click on Join Online globalFunctions.SearchInCitrixWindowAndDoubleClick(values2[5].ToString(), filePath + "Images\\JoinOnline.png", 0.90f, 1, iteration, "JoinOnline"); System.Threading.Thread.Sleep(15000); //Click on OK Button globalFunctions.SearchInCitrixWindow(values2[5].ToString(), filePath + "Images\\OK.png", 0.90f, 2, iteration, "OK"); //Minimize remote window System.Windows.Forms.SendKeys.SendWait("^%{BREAK}"); globalFunctions.ShowDesktop(); //globalFunctions.SearchOnDesktopDoubleClick(filePath + "Images\\Remote_Minimize.png", 0.89f, 1, 1, "Remote Desktop Minimize"); //Minimize globalFunctions.WinButtonClickByParentClassNameAndButtonName(SkypeForBusiness, objSeeContactCardMenuItem, objMinimize, 1); // Check for the number of participates WinWindow intiatorwindow = globalFunctions.GetWindowByNameAndClassName(values[2].ToString(), LyncConversationWindowClassName, iteration, "Conversation Window"); string name = globalFunctions.VerifyNoOfParticipates(intiatorwindow, objSeeContactCardMenuItem, values[2].ToString() + Value, iteration); if (name == "2 Participants") { globalFunctions.Result("2 Participants are present in the meeting", "pass", iteration); } else { globalFunctions.Result("1 Participants are present in the meeting", "fail", iteration); } //End Call if exist globalFunctions.WinButtonHoverByNameAndClickImageIfExist(intiatorwindow, objstopaudio, values[2].ToString(), iteration); //Fetching the system time and placing in data file globalFunctions.InsertDateTimeToDataFile(DataPath + "JoinSkypeMeeting.csv", 4, iteration - 1); ////close window if exist if (globalFunctions.GetWindowByNameAndClassNameIfWindowExist(values[2].ToString(), LyncConversationWindowClassName, iteration, "Conversation Window")) { WinWindow closewindow1 = globalFunctions.GetWindowByNameAndClassName(values[2].ToString(), LyncConversationWindowClassName, iteration, "Conversation Window"); WinWindow closewindow = globalFunctions.GetWindowByParentClassName(closewindow1, values[2].ToString(), objSeeContactCardMenuItem, iteration, "Skype for Business"); globalFunctions.WinClickByControlTypeIfExist(closewindow, objDialog, objCloseButton, values[2].ToString(), iteration); globalFunctions.GetWindowByAccessibleNameAndClassNameIfExist(objDoYouWantToClose, objSeeContactCardMenuItem, objDoYouWantToClose, objCloseAllTabs, iteration); } //Click on OK if exist globalFunctions.GetWindowByNameAndClassNameIfExist(objbuttonname, objSkypeWindowClassName, objDialogName, objOKButton, iteration); //Minimize globalFunctions.WinButtonClickByParentClassNameAndButtonName(SkypeForBusiness, objSeeContactCardMenuItem, objMinimize, 1); //vdi machine // Close the //To Open and maximize remote window //System.Windows.Forms.SendKeys.SendWait("%{TAB}"); // maximizeWindow = globalFunctions.GetWindowByNameAndClassName(values2[5].ToString(), objRemWindowMaxClassNAme, iteration); //globalFunctions.ClickOnWindowCloseButton(maximizeWindow, objMaximize, iteration); ////System.Windows.Forms.SendKeys.SendWait("^%{BREAK}"); #region Click On Remote window Icon if (objSkypeversion == values2[0]) { // click on the icon globalFunctions.ClickOnToolBarButton(citrixwindow, objtoolbarname, values2[5].ToString(), iteration); } else { SampleTestObjectRepository2016 sample = new SampleTestObjectRepository2016(); globalFunctions.ClickOnToolBarButton(citrixwindow, objtoolbarname, sample.objRemoteDesktopConnection, iteration); } maximizeWindow = globalFunctions.GetWindowByNameAndClassName(values2[5].ToString(), objRemWindowMaxClassNAme, iteration); globalFunctions.ClickOnWindowButtonIfExist(maximizeWindow, objMaximize, iteration); #endregion // Minimize Skype //bool exist9 = false; //bool exist10 = globalFunctions.SearchInCitrixWindow(values2[5].ToString(), filePath + "Images\\SkypeForBusiness.png", 0.97f, 0, iteration, "SkypeForBusiness"); //if (!exist10) //{ // exist9 = globalFunctions.SearchInCitrixWindow(values2[5].ToString(), filePath + "Images\\AlternativeSkypeForBusiness.png", 0.97f, 2, iteration, "AlternativeSkypeForBusiness"); //} //if (exist10 == true || exist9 == true) //{ // bool exist11 = globalFunctions.SearchInCitrixWindowAndDoubleClick(values2[5].ToString(), filePath + "Images\\Minimize.png", 0.92f, 0, iteration, "Minimize"); // if (!exist11) // { // bool exist12 = globalFunctions.SearchInCitrixWindowAndDoubleClick(values2[5].ToString(), filePath + "Images\\AlternativeMinimize.png", 0.92f, 2, iteration, "AlternativeMinimize"); // if (!exist12) // { // bool exist18 = globalFunctions.SearchInCitrixWindowAndDoubleClick(values2[5].ToString(), filePath + "Images\\Alternative1Minimize.png", 0.92f, 2, iteration, "Aletrnative1Minimize"); // if (!exist18) // { // globalFunctions.SearchInCitrixWindowAndDoubleClick(values2[5].ToString(), filePath + "Images\\AlternativeMinimize2.png", 0.92f, 2, iteration, "AletrnativeMinimize2"); // } // } // } //} //bool clicksuccess = globalFunctions.SearchInCitrixWindow(values2[5].ToString(), filePath + "Images\\Close.png", 0.93f, 0, iteration, "Close"); //if (!clicksuccess) //{ // globalFunctions.SearchInCitrixWindow(values2[5].ToString(), filePath + "Images\\AlternativeClose.png", 0.93f, 1, iteration, "AlternativeClose"); //} //globalFunctions.SearchInCitrixWindow(values2[5].ToString(), filePath + "Images\\OK.png", 0.93f, 1, iteration, "OK"); //// Check for Close all tabs //globalFunctions.SearchInCitrixWindow(values2[5].ToString(), filePath + "Images\\CloseAllTabs.png", 0.97f, 2, iteration, "Close All Tabs Button "); //// Minimize Skype //bool exist13 = false; //bool exist14 = globalFunctions.SearchInCitrixWindow(values2[5].ToString(), filePath + "Images\\SkypeForBusiness.png", 0.97f, 0, iteration, "SkypeForBusiness"); //if (!exist14) //{ // exist13 = globalFunctions.SearchInCitrixWindow(values2[5].ToString(), filePath + "Images\\AlternativeSkypeForBusiness.png", 0.97f, 2, iteration, "AlternativeSkypeForBusiness"); //} //if (exist14 == true || exist13 == true) //{ // bool exist15 = globalFunctions.SearchInCitrixWindowAndDoubleClick(values2[5].ToString(), filePath + "Images\\Minimize.png", 0.92f, 0, iteration, "Minimize"); // if (!exist15) // { // bool exist16 = globalFunctions.SearchInCitrixWindowAndDoubleClick(values2[5].ToString(), filePath + "Images\\AlternativeMinimize.png", 0.92f, 2, iteration, "AlternativeMinimize"); // if (!exist16) // { // bool exist19 = globalFunctions.SearchInCitrixWindowAndDoubleClick(values2[5].ToString(), filePath + "Images\\Alternative1Minimize.png", 0.92f, 2, iteration, "Aletrnative1Minimize"); // if (!exist19) // { // globalFunctions.SearchInCitrixWindowAndDoubleClick(values2[5].ToString(), filePath + "Images\\AlternativeMinimize2.png", 0.92f, 2, iteration, "AletrnativeMinimize2"); // } // } // } //} //powershell details set up, two list order should match List <string> wordToBeReplaced = new List <string>(); wordToBeReplaced.Clear(); wordToBeReplaced.Add("$server"); wordToBeReplaced.Add("$Username"); wordToBeReplaced.Add("$Password"); List <string> newWords = new List <string>(); newWords.Clear(); newWords.Add(values2[9].ToString()); newWords.Add(values2[7].ToString()); newWords.Add(values2[8].ToString()); globalFunctions.ReplaceTheFirstOccurances(DataPath + "CleanupLync.ps1", wordToBeReplaced, newWords, 1); //Kill remote skype and start process only in task manager globalFunctions.RunPowershell(DataPath + "CleanupLync.ps1", 1); globalFunctions.SearchInCitrixWindowAndDoubleClick(values2[5].ToString(), filePath + "Images\\Dismiss_All.png", 0.90f, 1, iteration, "Dismiss_All"); System.Threading.Thread.Sleep(1000); globalFunctions.SearchInCitrixWindow(values2[5].ToString(), filePath + "Images\\Yes.png", 0.90f, 1, iteration, "Yes"); //Minimize remote window System.Windows.Forms.SendKeys.SendWait("^%{BREAK}"); globalFunctions.ShowDesktop(); //globalFunctions.SearchOnDesktopDoubleClick(filePath + "Images\\Remote_Minimize.png", 0.89f, 2, 1, "Remote Desktop Minimize"); } } catch (Exception exception) { //{"The playback failed to find the control with the given search properties. Additional Details: \r\nTechnologyName: 'MSAA'\r\nControlType: 'ListItem'\r\nName: '19. Juni2018, from 06:55 to 07:22, Subject SFB853, Location Skype Meeting, Organizer automation_Skype user12_CI (CI/CBV), Time Busy, Meeting with others.'\r\n"} //19. Juni 2018, from 06:55 to 07:22, Subject SFB853, Location Skype Meeting, Organizer automation_Skype user12_CI (CI/CBV), Time Busy, Meeting with others. _captureFailedScreenPath = Utility.FailureScreenShotCapture(); globalFunctions.ReturningToLocalDesktop(exception.Message, iterationintialize); globalFunctions.StopProcess("lync"); //Kill Outlook globalFunctions.StopProcess("OUTLOOK"); //powershell details set up, two list order should match List <string> wordToBeReplaced = new List <string>(); wordToBeReplaced.Clear(); wordToBeReplaced.Add("$server"); wordToBeReplaced.Add("$Username"); wordToBeReplaced.Add("$Password"); List <string> newWords = new List <string>(); newWords.Clear(); newWords.Add(values2[9].ToString()); newWords.Add(values2[7].ToString()); newWords.Add(values2[8].ToString()); globalFunctions.ReplaceTheFirstOccurances(DataPath + "CleanupLync.ps1", wordToBeReplaced, newWords, 1); //Kill remote skype and start process only in task manager globalFunctions.RunPowershell(DataPath + "CleanupLync.ps1", 1); Reports.ExceptionReports(TestContext.TestName, exception.Message, exception.Source, exception.StackTrace); Assert.Fail("An" + exception.GetType() + "Occured"); throw; } finally { LogDetails.Log(globalFunctions.listOfTuples, _dataRow); } }
public void AddIMtoAnExistingCall_1() { //string testResultsOutFolerPath = System.IO.Directory.GetCurrentDirectory(); //int posA = testResultsOutFolerPath.IndexOf("TestResults"); //string filePath = testResultsOutFolerPath.Substring(0, posA); int catchiteration = 0; try { for (int iteration = 1; iteration <= data_rows; iteration++) { catchiteration = iteration; string sr = globalFunctions.GetLine(DataPath + "AddIMtoExistingCall.csv", iteration); string[] values = sr.Split(','); //Launch Skype WinWindow SkypeForBusiness = globalFunctions.GetWindowByName(Constants.SFBName, iteration); SkypeForBusiness.SetFocus(); // click on contacts WinListItem winListItem = globalFunctions.WinListItemFindByName(SkypeForBusiness, objContactsTab, iteration); //Search by name globalFunctions.WinEditByName(SkypeForBusiness, objFindSomeone, values[0].ToString(), iteration, " Search by Name"); //Right click on searched name globalFunctions.WinListItemRightClickByName(SkypeForBusiness, values[0].ToString(), iteration); //Click on Skype for Business Call if (objSkypeversion == values1[0]) { //Click on Skype for Business Call globalFunctions.WinMenuItemClickByClassNameAndSubMenuItemClick(SkypeForBusiness, objStatusMenuItem, objMenuCall, objSubMenuSkyCall, iteration); } else { SampleTestObjectRepository2016 sample = new SampleTestObjectRepository2016(); //Click on Skype for Business Call globalFunctions.WinMenuItemClickByClassNameAndSubMenuItemClick(SkypeForBusiness, objStatusMenuItem, objMenuCall, sample.objSubMenuSkypeCall, iteration); } //Minimize // globalFunctions.WinButtonClickByParentClassNameAndButtonName(SkypeForBusiness, objSeeContactCardMenuItem, objMinimize, iteration); //To Open and maximize remote window //System.Windows.Forms.SendKeys.SendWait("%{TAB}"); //// System.Windows.Forms.SendKeys.SendWait("^%{BREAK}"); //WinWindow maximizeWindow = globalFunctions.GetWindowByNameAndClassName(values1[5].ToString(), objRemWindowMaxClassNAme, iteration); //globalFunctions.ClickOnWindowCloseButton(maximizeWindow, objMaximize, iteration); //citrix window #region Click on RDC Icon on toolbar by Control properties WinWindow citrixwindow = globalFunctions.GetWindowByNameAndClassName(objtoolbarname, objwindowclassname, iteration); if (objSkypeversion == values1[0]) { // click on the icon globalFunctions.ClickOnToolBarButton(citrixwindow, objtoolbarname, values1[5].ToString(), iteration); } else { SampleTestObjectRepository2016 sample = new SampleTestObjectRepository2016(); globalFunctions.ClickOnToolBarButton(citrixwindow, objtoolbarname, sample.objRemoteDesktopConnection, iteration); } WinWindow maximizeWindow = globalFunctions.GetWindowByNameAndClassName(values1[5].ToString(), objRemWindowMaxClassNAme, iteration); globalFunctions.ClickOnWindowButtonIfExist(maximizeWindow, objMaximize, iteration); #endregion // Open the Citrix Window Thread.Sleep(2000); bool callexist = globalFunctions.SearchBottomLeftInCitrixWindow(values1[5].ToString(), filePath + "Images\\call.png", 0.97f, 0, iteration, "Call"); if (!callexist) { globalFunctions.SearchBottomLeftInCitrixWindow(values1[5].ToString(), filePath + "Images\\AlternativeCall.png", 0.97f, 1, iteration, "AlternativeCall"); } Thread.Sleep(2000); //Minimize remote window System.Windows.Forms.SendKeys.SendWait("^%{BREAK}"); globalFunctions.ShowDesktop(); //globalFunctions.SearchOnDesktopDoubleClick(filePath + "Images\\Remote_Minimize.png", 0.93f, 1, 1, "Remote Desktop Minimize"); //Check microphone button WinWindow testwindow = globalFunctions.GetWindowByNameAndClassName(values[0].ToString(), LyncConversationWindowClassName, iteration, "Conversation Window"); globalFunctions.WinClientAndClickAlert(testwindow, objunmuted, objAlert, iteration, "Your microphone is unmuted. Press space to mute. Button"); //IM Image if (objSkypeversion == values1[0]) { //IM Image globalFunctions.WinControlClickByParentButtonNameAndWindowName(values[0].ToString(), LyncConversationWindowClassName, objIMButton, iteration); System.Threading.Thread.Sleep(2000); } else { SampleTestObjectRepository2016 sample = new SampleTestObjectRepository2016(); //IM Image globalFunctions.WinControlClickByParentButtonNameAndWindowName(values[0].ToString(), sample.LyncConversationWindowClassName, sample.objIMButton, iteration); System.Threading.Thread.Sleep(2000); } // enter data Keyboard.SendKeys(values[1].ToString() + "{Enter}"); System.Threading.Thread.Sleep(1500); //verify //maximize the IM window WinWindow maximizewindow = globalFunctions.GetWindowByNameAndClassNameAndTitle(values[0].ToString(), LyncConversationWindowClassName, values[0].ToString(), iteration, "Conversation Window"); globalFunctions.GetWindowClassNameDialogClickButton(maximizewindow, objSeeContactCardMenuItem, "Maximize", iteration); System.Collections.Generic.List <string> capturedpath = globalFunctions.GetWindowByNameAndClassNameAndAllCaptureIM(values[0].ToString(), LyncConversationWindowClassName, iteration, "capture text area"); string text = globalFunctions.OCRPictrueInDisk(capturedpath[0].ToString(), iteration); foreach (System.Diagnostics.Process proc in System.Diagnostics.Process.GetProcessesByName("ONENOTE")) { proc.Close(); proc.Refresh(); } if (text.Contains(values[1].ToString())) { globalFunctions.Result("IM message is sent, message details: " + text, "pass", iteration); } else if (text == "Error") { globalFunctions.Result("Error in Intializing One Note", "fail", iteration); } else { string text1 = globalFunctions.OCRPictrueInDisk(capturedpath[1].ToString(), iteration); foreach (System.Diagnostics.Process proc in System.Diagnostics.Process.GetProcessesByName("ONENOTE")) { proc.Close(); } if (text1.Contains(values[1].ToString())) { globalFunctions.Result("IM message is sent, message details: " + text1, "pass", iteration); } else { globalFunctions.Result("IM message is not sent", "fail", iteration); } } //End Call if exist globalFunctions.WinButtonHoverByNameAndClickImageIfExist(maximizewindow, objstopaudio, values[0].ToString(), iteration); //Fetching the system time and placing in data file globalFunctions.InsertDateTimeToDataFile(DataPath + "AddIMtoExistingCall.csv", 3, iteration - 1); ////close window if exist if (globalFunctions.GetWindowByNameAndClassNameIfWindowExist(values[0].ToString(), LyncConversationWindowClassName, iteration, "Conversation Window")) { WinWindow closewindow1 = globalFunctions.GetWindowByNameAndClassName(values[0].ToString(), LyncConversationWindowClassName, iteration, "Conversation Window"); WinWindow closewindow = globalFunctions.GetWindowByParentClassName(closewindow1, values[0].ToString(), objSeeContactCardMenuItem, iteration, "Skype for Business"); globalFunctions.WinClickByControlTypeIfExist(closewindow, objDialog, objCloseButton, values[0].ToString(), iteration); globalFunctions.GetWindowByAccessibleNameAndClassNameIfExist(objDoYouWantToClose, objSeeContactCardMenuItem, objDoYouWantToClose, objCloseAllTabs, iteration); } //Click on OK if exist globalFunctions.GetWindowByNameAndClassNameIfExist(objbuttonname, objSkypeWindowClassName, objDialogName, objOKButton, iteration); //Minimize globalFunctions.WinButtonClickByParentClassNameAndButtonName(SkypeForBusiness, objSeeContactCardMenuItem, objMinimize, 1); //To Open and maximize remote window System.Windows.Forms.SendKeys.SendWait("%{TAB}"); globalFunctions.ClickOnWindowCloseButton(maximizeWindow, "Maximize", iteration); // Open the Citrix Window #region //if (objSkypeversion == values1[0]) //{ // // click on the icon // globalFunctions.ClickOnToolBarButton(citrixwindow, objtoolbarname, values1[5].ToString(), iteration); //} //else //{ // SampleTestObjectRepository2016 sample = new SampleTestObjectRepository2016(); // globalFunctions.ClickOnToolBarButton(citrixwindow, objtoolbarname, sample.objRemoteDesktopConnection, iteration); //} #endregion // Minimize Skype //bool exist1 = false; // bool exist = globalFunctions.SearchInCitrixWindow(values1[5].ToString(),filePath + "Images\\SkypeForBusiness.png", 0.97f, 0, iteration, "SkypeForBusiness"); // if (!exist) // { // exist1 = globalFunctions.SearchInCitrixWindow(values1[5].ToString(),filePath + "Images\\AlternativeSkypeForBusiness.png", 0.97f, 2, iteration, "AlternativeSkypeForBusiness"); // } // if (exist == true || exist1 == true) // { // bool exist3 = globalFunctions.SearchInCitrixWindow(values1[5].ToString(),filePath + "Images\\Minimize.png", 0.92f, 0, iteration, "Minimize"); // if (!exist3) // { // bool exist4 = globalFunctions.SearchInCitrixWindow(values1[5].ToString(),filePath + "Images\\AlternativeMinimize.png", 0.92f, 2, iteration, "AlternativeMinimize"); // if (!exist4) // { // bool exist5 = globalFunctions.SearchInCitrixWindow(values1[5].ToString(),filePath + "Images\\Alternative1Minimize.png", 0.92f, 2, iteration, "Aletrnative1Minimize"); // if (!exist5) // { // globalFunctions.SearchInCitrixWindow(values1[5].ToString(),filePath + "Images\\AlternativeMinimize2.png", 0.92f, 2, iteration, "AletrnativeMinimize2"); // } // } // } // } // //Click on Close in Citrix window // Thread.Sleep(1000); // bool clicksuccess = globalFunctions.SearchInCitrixWindow(values1[5].ToString(),filePath + "Images\\Close.png", 0.93f, 0, iteration, "Close"); // if (!clicksuccess) // { // globalFunctions.SearchInCitrixWindow(values1[5].ToString(),filePath + "Images\\AlternativeClose.png", 0.93f, 1, iteration, "AlternativeClose"); // } // Thread.Sleep(2000); //globalFunctions.SearchInCitrixWindow(values1[5].ToString(), filePath + "Images\\OK.png", 0.93f, 2, iteration, "OK"); //// Check for Close all tabs //globalFunctions.SearchInCitrixWindow(values1[5].ToString(),filePath + "Images\\CloseAllTabs.png", 0.97f, 2, iteration, "Close All Tabs Button "); //powershell details set up, two list order should match List <string> wordToBeReplaced = new List <string>(); wordToBeReplaced.Clear(); wordToBeReplaced.Add("$server"); wordToBeReplaced.Add("$Username"); wordToBeReplaced.Add("$Password"); List <string> newWords = new List <string>(); newWords.Clear(); newWords.Add(values1[9].ToString()); newWords.Add(values1[7].ToString()); newWords.Add(values1[8].ToString()); globalFunctions.ReplaceTheFirstOccurances(DataPath + "CleanupLync.ps1", wordToBeReplaced, newWords, 1); //Kill remote skype and start process only in task manager globalFunctions.RunPowershell(DataPath + "CleanupLync.ps1", 1); //Minimize remote window System.Windows.Forms.SendKeys.SendWait("^%{BREAK}"); globalFunctions.ShowDesktop(); //globalFunctions.SearchOnDesktopDoubleClick(filePath + "Images\\Remote_Minimize.png", 0.93f, 2, 1, "Remote Desktop Minimize"); } } catch (Exception exception) { _captureFailedScreenPath = Utility.FailureScreenShotCapture(); globalFunctions.ReturningToLocalDesktop(exception.Message, iterationintialize); globalFunctions.StopProcess("lync"); //powershell details set up, two list order should match List <string> wordToBeReplaced = new List <string>(); wordToBeReplaced.Clear(); wordToBeReplaced.Add("$server"); wordToBeReplaced.Add("$Username"); wordToBeReplaced.Add("$Password"); List <string> newWords = new List <string>(); newWords.Clear(); newWords.Add(values1[9].ToString()); newWords.Add(values1[7].ToString()); newWords.Add(values1[8].ToString()); globalFunctions.ReplaceTheFirstOccurances(DataPath + "CleanupLync.ps1", wordToBeReplaced, newWords, 1); //Kill remote skype and start process only in task manager globalFunctions.RunPowershell(DataPath + "CleanupLync.ps1", 1); Reports.ExceptionReports(TestContext.TestName, exception.Message, exception.Source, exception.StackTrace); Assert.Fail("An" + exception.GetType() + "Occured"); throw; } finally { LogDetails.Log(globalFunctions.listOfTuples, _dataRow); } }