コード例 #1
0
        public PomDeltaWizard(ApplicationPOMModel pom, Agent agent)
        {
            mPomDeltaUtils = new PomDeltaUtils(pom, agent);

            AddPage(Name: "Elements Update Settings", Title: "Elements Update Settings", SubTitle: "Elements Update Settings", Page: new PomDeltaSettingsWizardPage());
            AddPage(Name: "Elements Compare", Title: "Elements Compare", SubTitle: "Elements Comparison with Latest Status", Page: new PomDeltaElementCompareWizardPage());
        }
コード例 #2
0
        private ObservableList <DeltaElementInfo> GetUpdatedVirtulPOM(Common.InterfacesLib.IAgent currentAgent)
        {
            var waitToCompleteLearnProcess = false;

            while (this.GetCurrentPOM().IsLearning)
            {
                waitToCompleteLearnProcess = true;
            }
            this.GetCurrentPOM().IsLearning = true;

            if (waitToCompleteLearnProcess)
            {
                var pomLastUpdatedTimeSpan = (DateTime.Now - Convert.ToDateTime(GetCurrentPOMElementInfo().LastUpdatedTime)).Minutes;
                if (pomLastUpdatedTimeSpan < 5)
                {
                    return(new ObservableList <DeltaElementInfo>());
                }
            }

            GingerCore.Agent agent = (GingerCore.Agent)currentAgent;
            var pomDeltaUtils      = new PomDeltaUtils(this.GetCurrentPOM(), agent);

            try
            {
                //set element type
                var elementList = this.GetCurrentPOM().MappedUIElements.Where(x => x.ElementTypeEnum != eElementType.Unknown).Select(y => y.ElementTypeEnum).Distinct().ToList();
                pomDeltaUtils.PomLearnUtils.LearnOnlyMappedElements = true;
                pomDeltaUtils.SelectedElementTypesList = elementList;
                pomDeltaUtils.PomLearnUtils.ElementLocatorsSettingsList = GingerCore.Platforms.PlatformsInfo.PlatformInfoBase.GetPlatformImpl(agent.Platform).GetLearningLocators();
                pomDeltaUtils.KeepOriginalLocatorsOrderAndActivation    = true;
                pomDeltaUtils.PropertiesChangesToAvoid = DeltaControlProperty.ePropertiesChangesToAvoid.All;

                mAct.ExInfo += DateTime.Now.ToString() + " Self healing operation attempting to auto update application model";
                this.GetCurrentPOM().StartDirtyTracking();

                pomDeltaUtils.LearnDelta().Wait();
                mAct.ExInfo += DateTime.Now + " Self healing operation application model was updated";
            }
            catch (Exception ex)
            {
            }
            finally
            {
                this.GetCurrentPOM().IsLearning = false;
            }

            return(pomDeltaUtils.DeltaViewElements);
        }
コード例 #3
0
        public PomNewAddedElementSelectionPage(ObservableList <DeltaElementInfo> deltaElementInfos, PomDeltaUtils pomDeltaUtils, string searchText, UserControls.GridColView gridColView)
        {
            InitializeComponent();
            mPomDeltaUtils = pomDeltaUtils;
            mDeltaElements = deltaElementInfos;

            mAgent = mPomDeltaUtils.Agent;

            mPomDeltaViewPage = new PomDeltaViewPage(mDeltaElements, gridColView);
            mPomDeltaViewPage.SetAgent(mAgent);
            mPomDeltaViewPage.xMainElementsGrid.Grid.Columns[1].Visibility = Visibility.Collapsed;
            mPomDeltaViewPage.xMainElementsGrid.btnMarkAll.Visibility      = Visibility.Collapsed;

            mPomDeltaViewPage.xMainElementsGrid.txtSearch.Text = searchText;
            xNewPomElementsPageFrame.Content = mPomDeltaViewPage;


            // set LiveSpy Agent
            xLiveSpy.DriverAgent      = mAgent;
            xLiveSpy.PropertyChanged += XLiveSpy_PropertyChanged;
        }
コード例 #4
0
        void SetPOMBasedChecks()
        {
            if (POMSelectionPending)
            {
                ShowPOMSelection();
            }

            try
            {
                if (xIntegratePOMChkBox.IsChecked == true && SelectedPOM != null)
                {
                    if (POMElement != null && POMCheckBoxToggled == true)
                    {
                        POMBasedAction     = true;
                        POMCheckBoxToggled = false;
                    }
                    else
                    {
                        //pomAllElementsPage = new PomAllElementsPage(xWindowSelection.SelectedPOM, PomAllElementsPage.eAllElementsPageContext.POMEditPage);
                        ElementInfo matchingOriginalElement = (ElementInfo)WindowExplorerDriver.GetMatchingElement(SelectedElement, SelectedPOM.GetUnifiedElementsList());

                        if (matchingOriginalElement == null)
                        {
                            WindowExplorerDriver.LearnElementInfoDetails(SelectedElement);
                            matchingOriginalElement = (ElementInfo)WindowExplorerDriver.GetMatchingElement(SelectedElement, SelectedPOM.GetUnifiedElementsList());
                        }

                        if (matchingOriginalElement != null &&
                            (SelectedPOM.MappedUIElements.Contains(matchingOriginalElement) || SelectedPOM.UnMappedUIElements.Contains(matchingOriginalElement)))
                        {
                            PomDeltaUtils pomDeltaUtils = new PomDeltaUtils(SelectedPOM, Context.Agent);
                            pomDeltaUtils.KeepOriginalLocatorsOrderAndActivation = true;

                            /// Not Required but
                            pomDeltaUtils.DeltaViewElements.Clear();

                            CustomElementLocatorsCheck(matchingOriginalElement, SelectedElement);

                            /// To Do - POM Delta Run and if Updated Element is found then ask user if they would like to replace existing POM Element with New ?
                            pomDeltaUtils.SetMatchingElementDeltaDetails(matchingOriginalElement, SelectedElement);

                            int originalItemIndex = -1;
                            if ((ApplicationPOMModel.eElementGroup)matchingOriginalElement.ElementGroup == ApplicationPOMModel.eElementGroup.Mapped)
                            {
                                originalItemIndex = SelectedPOM.MappedUIElements.IndexOf(matchingOriginalElement);
                            }

                            if (pomDeltaUtils.DeltaViewElements[0].DeltaStatus == eDeltaStatus.Changed)
                            {
                                //enter it to POM elements instead of existing one
                                if (xAutoUpdatePOMElementChkBox.IsChecked == true || Reporter.ToUser(eUserMsgKey.UpdateExistingPOMElement, matchingOriginalElement.ElementName) == eUserMsgSelection.Yes)
                                {
                                    /// Replace existing element with new one
                                    /// Element exists in Mapped Elements list
                                    if (originalItemIndex > -1)
                                    {
                                        SelectedPOM.MappedUIElements.RemoveAt(originalItemIndex);
                                        SelectedPOM.MappedUIElements.Insert(originalItemIndex, pomDeltaUtils.DeltaViewElements[0].ElementInfo);
                                        POMElementsUpdated = false;
                                    }
                                    /// Element exists in Un-Mapped Elements list
                                    /// We'll remove Element from Unmapped list and add it as new into Mapped Elements list
                                    else
                                    {
                                        SelectedPOM.MappedUIElements.Add(pomDeltaUtils.DeltaViewElements[0].ElementInfo);
                                        SelectedPOM.UnMappedUIElements.Remove(matchingOriginalElement);
                                        POMElementsUpdated = true;
                                    }

                                    POMElement            = pomDeltaUtils.DeltaViewElements[0].ElementInfo;
                                    POMElement.ParentGuid = SelectedPOM.Guid;
                                }
                                else
                                {
                                    if (originalItemIndex == -1)
                                    {
                                        SelectedPOM.MappedUIElements.Add(pomDeltaUtils.DeltaViewElements[0].ElementInfo);
                                        SelectedPOM.UnMappedUIElements.Remove(matchingOriginalElement);

                                        POMElement         = pomDeltaUtils.DeltaViewElements[0].ElementInfo;
                                        POMElementsUpdated = true;
                                    }
                                    else
                                    {
                                        POMElement         = matchingOriginalElement;
                                        POMElementsUpdated = false;
                                    }
                                }
                            }
                            else
                            {
                                /// Element exist in UnMapped Elements List
                                if (originalItemIndex == -1)
                                {
                                    //if (Reporter.ToUser(eUserMsgKey.POMMoveElementFromUnmappedToMapped, matchingOriginalElement.ElementName, xWindowSelection.SelectedPOM.Name) == eUserMsgSelection.Yes)
                                    //{
                                    SelectedPOM.MappedUIElements.Add(matchingOriginalElement);
                                    SelectedPOM.UnMappedUIElements.Remove(matchingOriginalElement);
                                    //}
                                }

                                POMElement = matchingOriginalElement;
                            }
                            POMBasedAction = true;
                        }
                        /// Element doesn't exist on POM, perform New Element related checks
                        else
                        {
                            if (xAutoUpdatePOMElementChkBox.IsChecked == true || Reporter.ToUser(eUserMsgKey.POMElementNotExist, SelectedElement.ElementName, SelectedPOM.Name) == eUserMsgSelection.Yes)
                            {
                                POMBasedAction = true;
                                SelectedElement.IsAutoLearned = true;
                                SelectedPOM.MappedUIElements.Add(SelectedElement);

                                POMElement            = SelectedElement;
                                POMElement.ParentGuid = SelectedPOM.Guid;
                                POMElementsUpdated    = true;
                            }
                            else
                            {
                                POMElement         = null;
                                POMBasedAction     = false;
                                POMElementsUpdated = false;
                            }
                        }
                    }
                }
                else
                {
                    if (POMCheckBoxToggled == true)
                    {
                        POMCheckBoxToggled = false;
                    }
                    POMBasedAction = false;
                }
            }
            catch (Exception ex)
            {
                Reporter.ToLog(eLogLevel.ERROR, "Exception in ShowCurrentControlInfo", ex);
                Reporter.ToUser(eUserMsgKey.ObjectLoad);
            }
        }