private void PlatformDriverPageChangedHandler(PageChangedEventArgs args) { try { POMObjectRecordingHelper newPOMHelper = null; if (ListPOMObjectHelper != null && ListPOMObjectHelper.Count > 0) { var obj = ListPOMObjectHelper.FirstOrDefault(s => s.PageTitle == args.PageTitle && s.PageURL == args.PageURL); if (obj == null && !string.IsNullOrEmpty(args.PageTitle) && !string.IsNullOrEmpty(args.PageURL)) { newPOMHelper = GetNewPOM(args.PageTitle, args.PageURL, args.ScreenShot); ListPOMObjectHelper.Add(newPOMHelper); CurrentPOM = newPOMHelper.ApplicationPOM; } else if (!(CurrentPOM.PageURL == obj.PageURL && CurrentPOM.Name == obj.PageTitle)) { CurrentPOM = obj.ApplicationPOM; } } else { newPOMHelper = GetNewPOM(args.PageTitle, args.PageURL, args.ScreenShot); CurrentPOM = newPOMHelper.ApplicationPOM; ListPOMObjectHelper = new List <POMObjectRecordingHelper>(); ListPOMObjectHelper.Add(newPOMHelper); } } catch (Exception ex) { Reporter.ToLog(eLogLevel.ERROR, "Error in Page change event handler while recording", ex); } }
private POMObjectRecordingHelper GetNewPOM(string pageTitle, string pageURL, string screenShot) { POMObjectRecordingHelper recordingHelper = new POMObjectRecordingHelper(); try { ApplicationPOMModel newPOM = new ApplicationPOMModel(); newPOM.FileName = pageTitle; newPOM.FilePath = pageTitle; newPOM.Name = pageTitle; newPOM.Guid = new Guid(); newPOM.ItemName = pageTitle; newPOM.PageURL = pageURL; newPOM.ScreenShotImage = screenShot; newPOM.MappedUIElements = new ObservableList <ElementInfo>(); recordingHelper.PageTitle = pageTitle; recordingHelper.PageURL = pageURL; recordingHelper.ApplicationPOM = newPOM; } catch (Exception ex) { Reporter.ToLog(eLogLevel.ERROR, "Error in creating Recording object", ex); } return(recordingHelper); }
/// <summary> /// This method is used to get the new POM object for new creation while recording /// </summary> /// <param name="pageTitle"></param> /// <param name="pageURL"></param> /// <param name="screenShot"></param> /// <returns></returns> private POMObjectRecordingHelper GetNewPOM(string pageTitle, string pageURL, string screenShot) { POMObjectRecordingHelper recordingHelper = new POMObjectRecordingHelper(); try { ApplicationPOMModel newPOM = new ApplicationPOMModel(); string uniquTitle = GetUniquePOMName(pageTitle); newPOM.Name = uniquTitle; newPOM.PageURL = pageURL; newPOM.ScreenShotImage = screenShot; newPOM.MappedUIElements = new ObservableList <ElementInfo>(); if (WorkSpace.Instance.Solution != null)//check for unit tests { RepositoryItemKey tAppkey = WorkSpace.Instance.Solution.ApplicationPlatforms.Where(x => x.AppName == Context.Target.Name).Select(x => x.Key).FirstOrDefault(); if (tAppkey != null) { newPOM.TargetApplicationKey = tAppkey; } else { newPOM.TargetApplicationKey = Context.Target.Key; } } //Save new POM if (WorkSpace.Instance.SolutionRepository != null)//check for unit tests { RepositoryFolder <ApplicationPOMModel> repositoryFolder = WorkSpace.Instance.SolutionRepository.GetRepositoryItemRootFolder <ApplicationPOMModel>(); repositoryFolder.AddRepositoryItem(newPOM); } if (mApplicationPOMList != null) { mApplicationPOMList.Add(newPOM);//adding so user will notice it was added during recording } recordingHelper.PageTitle = pageTitle; recordingHelper.PageURL = pageURL; recordingHelper.ApplicationPOM = newPOM; } catch (Exception ex) { Reporter.ToLog(eLogLevel.ERROR, "Error in creating Recording object", ex); } return(recordingHelper); }