Example #1
0
        Act IObsoleteAction.GetNewAction()
        {
            AutoMapper.MapperConfiguration mapConfig;

            mapConfig = new AutoMapper.MapperConfiguration(cfg => { cfg.CreateMap <Act, ActUIElement>(); });
            ActUIElement newAct = mapConfig.CreateMapper().Map <Act, ActUIElement>(this);

            newAct.ElementType   = eElementType.Window;
            newAct.ElementAction = ActUIElement.eElementAction.Switch;

            newAct.ElementLocateBy    = LocateBy;
            newAct.ElementLocateValue = LocateValue;
            newAct.GetOrCreateInputParam(ActUIElement.Fields.SyncTime, Convert.ToString(WaitTime));
            return(newAct);
        }
Example #2
0
        public void DragAndDropSelenium()
        {
            ResetBusinessFlow();

            Activity a1 = new Activity();

            a1.Active            = true;
            a1.TargetApplication = "WebApp";
            mBF.Activities.Add(a1);

            ActGotoURL act1 = new ActGotoURL()
            {
                LocateBy = eLocateBy.NA, Value = "https://demos.telerik.com/kendo-ui/dragdrop/index", Active = true
            };

            a1.Acts.Add(act1);


            ActUIElement act3 = new ActUIElement();

            act3.ElementLocateBy = eLocateBy.ByXPath;
            // act2.LocateValue
            act3.GetOrCreateInputParam(ActUIElement.Fields.ElementLocateValue, "//*[@id='draggable']");
            act3.ElementAction = ActUIElement.eElementAction.DragDrop;
            act3.GetOrCreateInputParam(ActUIElement.Fields.DragDropType, ActUIElement.eElementDragDropType.DragDropSelenium.ToString());
            act3.TargetLocateBy = eLocateBy.ByXPath;
            act3.GetOrCreateInputParam(ActUIElement.Fields.TargetLocateValue, "//*[@id='droptarget']");
            act3.Active = true;
            a1.Acts.Add(act3);

            mGR.RunRunner();
            Assert.AreEqual(mBF.RunStatus, eRunStatus.Passed);
            Assert.AreEqual(a1.Status, eRunStatus.Passed);
            Assert.AreEqual(act1.Status, eRunStatus.Passed);
            Assert.AreEqual(act3.Status, eRunStatus.Passed);
        }
        public void DoDragAndDropByOffSet()
        {
            ResetBusinessFlow();

            Activity a1 = new Activity();

            a1.Active            = true;
            a1.TargetApplication = "WebApp";
            mBF.Activities.Add(a1);

            ActGotoURL act1 = new ActGotoURL()
            {
                LocateBy = eLocateBy.NA, Value = "https://demos.telerik.com/kendo-ui/dragdrop/index", Active = true
            };

            a1.Acts.Add(act1);

            ActUIElement act3 = new ActUIElement();

            act3.ElementLocateBy = eLocateBy.ByXPath;
            act3.GetOrCreateInputParam(ActUIElement.Fields.ElementLocateValue, "//*[@id='draggable']");
            act3.ElementAction = ActUIElement.eElementAction.DragDrop;

            act3.TargetLocateBy = eLocateBy.ByXY;
            // act3.GetOrCreateInputParam(ActUIElement.Fields.TargetLocateValue, "1102,463");
            act3.GetOrCreateInputParam(ActUIElement.Fields.XCoordinate, "1102");
            act3.GetOrCreateInputParam(ActUIElement.Fields.XCoordinate, "463");
            act3.Active = true;
            a1.Acts.Add(act3);

            mGR.Executor.RunRunner();
            Assert.AreEqual(mBF.RunStatus, eRunStatus.Passed);
            Assert.AreEqual(a1.Status, eRunStatus.Passed);
            Assert.AreEqual(act1.Status, eRunStatus.Passed);
            Assert.AreEqual(act3.Status, eRunStatus.Passed);
        }
Example #4
0
        public UIElementSendKeysAndValidate(ActUIElement Act, PlatformInfoBase Platform)
        {
            mAct      = Act;
            mPlatform = Platform;
            InitializeComponent();

            //TODO: Binding of all UI elements
            Value.Init(Context.GetAsContext(mAct.Context), mAct.GetOrCreateInputParam(ActUIElement.Fields.Value), true, false, UCValueExpression.eBrowserType.Folder);
            HandleElementType.BindControl(mAct, ActUIElement.Fields.HandleElementType, Platform.GetPlatformUIElementsType());
            HandleLocateByComboBox.Init(mAct.GetOrCreateInputParam(ActUIElement.Fields.HandleElementLocateBy), Platform.GetPlatformUIElementLocatorsList(), false, null);
            HandleLocatorValue.Init(Context.GetAsContext(mAct.Context), mAct.GetOrCreateInputParam(ActUIElement.Fields.HandleElementLocatorValue), true, false, UCValueExpression.eBrowserType.Folder);

            ValidationType.Init(mAct.GetOrCreateInputParam(ActUIElement.Fields.ValidationType), Platform.GetPlatformUIValidationTypesList(), false, null);
            ValidationElement.Init(mAct.GetOrCreateInputParam(ActUIElement.Fields.ValidationElement), Platform.GetPlatformUIElementsType(), false, null);
            LocateByComboBox.Init(mAct.GetOrCreateInputParam(ActUIElement.Fields.ValidationElementLocateBy), Platform.GetPlatformUIElementLocatorsList(), false, null);
            LocatorValue.Init(Context.GetAsContext(mAct.Context), mAct.GetOrCreateInputParam(ActUIElement.Fields.ValidationElementLocatorValue), true, false, UCValueExpression.eBrowserType.Folder);
            ValidationElementValue.Init(Context.GetAsContext(mAct.Context), mAct.GetOrCreateInputParam(ActUIElement.Fields.ValidationElementValue), true, false, UCValueExpression.eBrowserType.Folder);
            GingerCore.General.ActInputValueBinding(DefineHandleAction, CheckBox.IsCheckedProperty, mAct.GetOrCreateInputParam(ActUIElement.Fields.DefineHandleAction, "False"));
        }
Example #5
0
        public override Act GetPlatformActionByElementInfo(ElementInfo elementInfo, ElementActionCongifuration actConfig)
        {
            var pomExcutionUtil = new POMExecutionUtils();
            Act elementAction   = null;

            if (elementInfo != null)
            {
                List <ActUIElement.eElementAction> elementTypeOperations = GetPlatformUIElementActionsList(elementInfo.ElementTypeEnum);
                if (actConfig != null)
                {
                    if (string.IsNullOrWhiteSpace(actConfig.Operation))
                    {
                        actConfig.Operation = GetDefaultElementOperation(elementInfo.ElementTypeEnum);
                    }
                }
                if ((elementTypeOperations != null) && (elementTypeOperations.Count > 0))
                {
                    elementAction = new ActUIElement()
                    {
                        Description        = string.IsNullOrWhiteSpace(actConfig.Description) ? "UI Element Action : " + actConfig.Operation + " - " + elementInfo.ItemName : actConfig.Description,
                        ElementAction      = (ActUIElement.eElementAction)System.Enum.Parse(typeof(ActUIElement.eElementAction), actConfig.Operation),
                        ElementLocateValue = actConfig.LocateValue,
                        Value = actConfig.ElementValue
                    };

                    if (elementInfo.ElementTypeEnum.Equals(eElementType.Table))
                    {
                        elementAction.GetOrCreateInputParam(ActUIElement.Fields.WhereColumnValue, actConfig.WhereColumnValue);
                        elementAction.GetOrCreateInputParam(ActUIElement.Fields.LocateRowType, actConfig.LocateRowType);
                        elementAction.GetOrCreateInputParam(ActUIElement.Fields.LocateRowValue, actConfig.RowValue);
                        elementAction.GetOrCreateInputParam(ActUIElement.Fields.ColSelectorValue, actConfig.ColSelectorValue);
                        elementAction.GetOrCreateInputParam(ActUIElement.Fields.LocateColTitle, actConfig.LocateColTitle);
                        elementAction.GetOrCreateInputParam(ActUIElement.Fields.ControlAction, actConfig.ControlAction);
                    }

                    pomExcutionUtil.SetPOMProperties(elementAction, elementInfo, actConfig);
                }
            }
            else
            {
                elementAction = new ActUIElement()
                {
                    Description        = string.IsNullOrWhiteSpace(actConfig.Description) ? "UI Element Action : " + actConfig.Operation + " - " + elementInfo.ItemName : actConfig.Description,
                    ElementLocateBy    = (eLocateBy)System.Enum.Parse(typeof(eLocateBy), Convert.ToString(actConfig.LocateBy)),
                    ElementAction      = (ActUIElement.eElementAction)System.Enum.Parse(typeof(ActUIElement.eElementAction), actConfig.Operation),
                    ElementLocateValue = actConfig.LocateValue,
                    ElementType        = (eElementType)System.Enum.Parse(typeof(eElementType), Convert.ToString(actConfig.Type)),
                    Value = actConfig.ElementValue
                };
            }
            return(elementAction);
        }
Example #6
0
        public static void CreateActUISwitchWindowAction(string windowTitle, Amdocs.Ginger.Common.Context mContext)
        {
            ActUIElement actUIElement = new ActUIElement()
            {
                Description        = "UI Switch Window - " + windowTitle,
                ElementLocateBy    = eLocateBy.ByTitle,
                ElementLocateValue = windowTitle,
                ElementType        = eElementType.Window,
                ElementAction      = ActUIElement.eElementAction.Switch
            };

            actUIElement.GetOrCreateInputParam(ActUIElement.Fields.SyncTime, "30");

            if (mContext.BusinessFlow != null)
            {
                mContext.BusinessFlow.AddAct(actUIElement, true);
            }
            else
            {
                Reporter.ToUser(eUserMsgKey.RestartAgent);
            }
        }
Example #7
0
        public override ObservableList <Act> GetPlatformElementActions(ElementInfo elementInfo)
        {
            if (elementInfo.GetType() == typeof(HTMLElementInfo))
            {
                return(GetWidgetUIElementList(elementInfo));
            }

            ObservableList <Act> UIElementsActionsList = new ObservableList <Act>();

            if (elementInfo.ElementTypeEnum == eElementType.Table)
            {
                //get all action list supported to table
                var tableActionList = new[] { ActUIElement.eElementAction.TableCellAction, ActUIElement.eElementAction.TableAction, ActUIElement.eElementAction.TableRowAction }
                .SelectMany(action => GetTableControlActions(action))
                .ToList();
                foreach (var action in tableActionList)
                {
                    var elementAction = ActUIElement.eElementAction.TableCellAction;

                    if (action.Equals(ActUIElement.eTableAction.GetRowCount) || action.Equals(ActUIElement.eTableAction.SelectAllRows))
                    {
                        elementAction = ActUIElement.eElementAction.TableAction;
                    }
                    else if (action.Equals(ActUIElement.eTableAction.GetSelectedRow) || action.Equals(ActUIElement.eTableAction.ActivateRow))
                    {
                        elementAction = ActUIElement.eElementAction.TableRowAction;
                    }

                    var actUITableAction = new ActUIElement()
                    {
                        Description   = action + " : " + elementInfo.ElementTitle,
                        ElementType   = eElementType.Table,
                        ElementAction = elementAction,
                    };
                    actUITableAction.GetOrCreateInputParam(ActUIElement.Fields.ControlAction, action.ToString());
                    actUITableAction.GetOrCreateInputParam(ActUIElement.Fields.WaitforIdle, ActUIElement.eWaitForIdle.Medium.ToString());
                    if (!action.Equals(ActUIElement.eElementAction.TableAction))
                    {
                        actUITableAction.GetOrCreateInputParam(ActUIElement.Fields.LocateRowType, "Row Number");
                        actUITableAction.GetOrCreateInputParam(ActUIElement.Fields.LocateRowValue, "0");

                        actUITableAction.GetOrCreateInputParam(ActUIElement.Fields.ColSelectorValue, ActUIElement.eTableElementRunColSelectorValue.ColNum.ToString());
                        actUITableAction.GetOrCreateInputParam(ActUIElement.Fields.LocateColTitle, "0");
                    }
                    UIElementsActionsList.Add(actUITableAction);
                }
            }
            else
            {
                var actionList = GetPlatformUIElementActionsList(elementInfo.ElementTypeEnum);

                if (actionList.Count > 0)
                {
                    foreach (var action in actionList)
                    {
                        UIElementsActionsList.Add(CreateUIElementAction(elementInfo, action));
                    }
                }
            }

            return(UIElementsActionsList);
        }
 private void ShowWidgetsElementCheckBox()
 {
     xWidgetElementCheckBox.Visibility = Visibility.Visible;
     BindingHandler.ActInputValueBinding(xWidgetElementCheckBox, CheckBox.IsCheckedProperty, mAction.GetOrCreateInputParam(Fields.IsWidgetsElement, "false"), new InputValueToBoolConverter());
 }
Example #9
0
 private void InitTargetLocateValue()
 {
     txtLocateValueX.Init(mAction.GetOrCreateInputParam(ActUIElement.Fields.XCoordinate), true, false, UCValueExpression.eBrowserType.Folder);
     txtLocateValueY.Init(mAction.GetOrCreateInputParam(ActUIElement.Fields.YCoordinate), true, false, UCValueExpression.eBrowserType.Folder);
 }
Example #10
0
        private ActUIElement ConvertJavaTableToActUITable(ActUIElement newActUIElement)
        {
            newActUIElement.ElementLocateBy    = this.LocateBy;
            newActUIElement.ElementLocateValue = this.LocateValue;
            newActUIElement.ElementType        = Amdocs.Ginger.Common.UIElement.eElementType.Table;

            newActUIElement.ElementAction = GetTableElementActionType(this.ControlAction);
            newActUIElement.GetOrCreateInputParam(ActUIElement.Fields.ControlAction, this.ControlAction.ToString());
            newActUIElement.GetOrCreateInputParam(ActUIElement.Fields.ControlActionValue, this.Value);

            newActUIElement.GetOrCreateInputParam(ActUIElement.Fields.LocateRowType, this.LocateRowType);
            newActUIElement.GetOrCreateInputParam(ActUIElement.Fields.LocateRowValue, this.LocateRowType);

            newActUIElement.GetOrCreateInputParam(ActUIElement.Fields.ByWhere, this.ByWhere.ToString());
            newActUIElement.GetOrCreateInputParam(ActUIElement.Fields.ByRowNum, this.ByRowNum.ToString());
            newActUIElement.GetOrCreateInputParam(ActUIElement.Fields.ByRandRow, this.ByRandRow.ToString());
            newActUIElement.GetOrCreateInputParam(ActUIElement.Fields.BySelectedRow, this.BySelectedRow.ToString());


            newActUIElement.GetOrCreateInputParam(ActUIElement.Fields.LocateColTitle, this.LocateColTitle);
            newActUIElement.GetOrCreateInputParam(ActUIElement.Fields.ColSelectorValue, Convert.ToString(this.ColSelectorValue));
            newActUIElement.GetOrCreateInputParam(ActUIElement.Fields.WhereColSelector, Convert.ToString(this.WhereColSelector));
            newActUIElement.GetOrCreateInputParam(ActUIElement.Fields.WhereColumnTitle, this.WhereColumnTitle);
            newActUIElement.GetOrCreateInputParam(ActUIElement.Fields.WhereColumnValue, this.WhereColumnValue);
            newActUIElement.GetOrCreateInputParam(ActUIElement.Fields.WhereOperator, Convert.ToString(this.WhereOperator));
            newActUIElement.GetOrCreateInputParam(ActUIElement.Fields.WhereProperty, Convert.ToString(this.WhereProperty));



            if (this.ReturnValues.Count > 0)
            {
                if (this.ReturnValues[0].Param == "Actual")
                {
                    newActUIElement.ReturnValues[0].Param = "Actual0";
                }
            }

            return(newActUIElement);
        }
Example #11
0
        public void TableActionFieldBinding()
        {
            RowSelectorPanelInit();
            WhereColumn.Init(mAct.GetOrCreateInputParam(ActUIElement.Fields.WhereColSelector, mAct.GetInputParamValue(ActUIElement.Fields.WhereColSelector)), typeof(ActUIElement.eTableElementRunColSelectorValue), isVENeeded: false, UCselectionChange: WhereColumn_SelectionChanged);
            WhereColumnTitle.Init(mAct.GetOrCreateInputParam(ActUIElement.Fields.WhereColumnTitle, mAct.GetInputParamValue(ActUIElement.Fields.WhereColumnTitle)), isVENeeded: true, UCselectionChange: WhereColumnTitle_SelectionChanged, context: Context.GetAsContext(mAct.Context));
            WhereProperty.Init(mAct.GetOrCreateInputParam(ActUIElement.Fields.WhereProperty, mAct.GetInputParamValue(ActUIElement.Fields.WhereProperty)), typeof(ActUIElement.eTableElementRunColPropertyValue), isVENeeded: false, UCselectionChange: WhereProperty_SelectionChanged);
            WhereOperator.Init(mAct.GetOrCreateInputParam(ActUIElement.Fields.WhereOperator, mAct.GetInputParamValue(ActUIElement.Fields.WhereOperator)), typeof(ActUIElement.eTableElementRunColOperator), isVENeeded: false, UCselectionChange: WhereOperator_SelectionChanged);
            WhereColumnValue.Init(Context.GetAsContext(mAct.Context), mAct.GetOrCreateInputParam(ActUIElement.Fields.WhereColumnValue, mAct.GetInputParamValue(ActUIElement.Fields.WhereColumnValue)));

            RowSelectorValue.Init(mAct.GetOrCreateInputParam(ActUIElement.Fields.LocateRowValue), isVENeeded: true, UCselectionChange: RowSelectorValue_SelectionChanged, context: Context.GetAsContext(mAct.Context));
        }
        private void TestButton_Click(object sender, RoutedEventArgs e)
        {
            TestStatusTextBlock.Text = "Executing";
            //TODO: do events?
            Act act;

            //We came from ActionEditPage
            if (mAction != null)
            {
                act = (Act)((Act)(mAction)).CreateCopy();
            }
            else
            {
                act = (Act)((Act)(mActions.CurrentItem)).CreateCopy();
            }

            // Copy from the selected Locator
            ElementLocator EL = (ElementLocator)mLocators.CurrentItem;

            act.AddNewReturnParams = true;
            act.Active             = true;
            if ((mActions.CurrentItem).GetType() == typeof(ActUIElement))
            {
                ActUIElement aaa   = (ActUIElement)mActions.CurrentItem;
                ActUIElement actUI = (ActUIElement)act;
                actUI.ElementLocateBy    = EL.LocateBy;
                actUI.ElementLocateValue = EL.LocateValue;
                actUI.Value = ValueTextBox.Text;
                actUI.GetOrCreateInputParam(ActUIElement.Fields.ControlActionValue, ValueTextBox.Text);
                actUI.GetOrCreateInputParam(ActUIElement.Fields.ControlAction, aaa.GetInputParamValue(ActUIElement.Fields.ControlAction));
                actUI.GetOrCreateInputParam(ActUIElement.Fields.WhereColSelector, aaa.GetInputParamValue(ActUIElement.Fields.WhereColSelector));
                actUI.GetOrCreateInputParam(ActUIElement.Fields.WhereColumnTitle, aaa.GetInputParamValue(ActUIElement.Fields.WhereColumnTitle));
                actUI.GetOrCreateInputParam(ActUIElement.Fields.WhereColumnValue, aaa.GetInputParamValue(ActUIElement.Fields.WhereColumnValue));
                actUI.GetOrCreateInputParam(ActUIElement.Fields.WhereOperator, aaa.GetInputParamValue(ActUIElement.Fields.WhereOperator));
                actUI.GetOrCreateInputParam(ActUIElement.Fields.WhereProperty, aaa.GetInputParamValue(ActUIElement.Fields.WhereProperty));
            }
            else
            {
                act.LocateBy = EL.LocateBy;
                act.LocateValueCalculated = EL.LocateValue;
                act.Value = ValueTextBox.Text;
            }

            App.AutomateTabGingerRunner.PrepActionVE(act);
            ApplicationAgent ag = App.AutomateTabGingerRunner.ApplicationAgents.Where(x => x.AppName == App.BusinessFlow.CurrentActivity.TargetApplication).FirstOrDefault();

            if (ag != null)
            {
                App.AutomateTabGingerRunner.ExecutionLogger.Configuration.ExecutionLoggerAutomationTabContext = ExecutionLoggerConfiguration.AutomationTabContext.ActionRun;
                ag.Agent.RunAction(act);
            }

            TestStatusTextBlock.Text = string.Empty;
            if (act.Status != null)
            {
                TestStatusTextBlock.Text += act.Status + System.Environment.NewLine;
            }
            if (string.IsNullOrEmpty(act.Error) == false)
            {
                TestStatusTextBlock.Text += act.Error + System.Environment.NewLine;
            }
            if (string.IsNullOrEmpty(act.ExInfo) == false)
            {
                TestStatusTextBlock.Text += act.ExInfo + System.Environment.NewLine;
            }

            string retval = GetAllRetVals(act);

            if (retval != null)
            {
                TestStatusTextBlock.Text += retval + System.Environment.NewLine;
            }
        }
Example #13
0
        public Page GetConfigPage(List <ElementConfigControl> configControlsList)
        {
            StackPanel dynamicPanel = new StackPanel {
                Orientation = Orientation.Horizontal, HorizontalAlignment = HorizontalAlignment.Left, VerticalAlignment = VerticalAlignment.Center
            };

            UserControlsLib.UCComboBox comboBox;
            Label elementLabel;
            Page  dynamicPage = new Page();

            foreach (ElementConfigControl element in configControlsList)
            {
                if (element.ControlType == eElementType.ComboBox)
                {
                    elementLabel = new Label()
                    {
                        Style               = this.FindResource("$LabelStyle") as Style,
                        Content             = element.Title + ":",
                        HorizontalAlignment = HorizontalAlignment.Left,
                        VerticalAlignment   = VerticalAlignment.Center,
                        FontSize            = 14
                    };
                    comboBox = new UserControlsLib.UCComboBox()
                    {
                        Name = element.Title,
                        HorizontalAlignment = HorizontalAlignment.Left,
                        VerticalAlignment   = VerticalAlignment.Center,
                        Width  = 600,
                        Margin = new Thickness(10, 0, 0, 0)
                    };
                    comboBox.Init(mAction.GetOrCreateInputParam(element.BindedString), isVENeeded: true);
                    ((Ginger.UserControlsLib.UCComboBox)comboBox).ComboBox.ItemsSource = element.PossibleValues;
                    if (mAction.ElementLocateBy == eLocateBy.POMElement)
                    {
                        ((Ginger.UserControlsLib.UCComboBox)comboBox).ComboBox.SelectedValue = element.DefaultValue;
                        comboBox.ComboBoxObject.Style = this.FindResource("$FlatEditInputComboBoxStyle") as Style;
                    }
                    dynamicPanel.Children.Add(elementLabel);
                    dynamicPanel.Children.Add(comboBox);
                }
                else if (element.ControlType == eElementType.TextBox)
                {
                    elementLabel = new Label()
                    {
                        Style               = this.FindResource("$LabelStyle") as Style,
                        Content             = element.Title + ":",
                        HorizontalAlignment = HorizontalAlignment.Left,
                        VerticalAlignment   = VerticalAlignment.Center,
                        FontSize            = 14
                    };
                    Ginger.Actions.UCValueExpression txtBox = new Ginger.Actions.UCValueExpression()
                    {
                        Name = element.Title.ToString().Replace(" ", ""),
                        HorizontalAlignment = HorizontalAlignment.Left,
                        VerticalAlignment   = VerticalAlignment.Center,
                        Width  = 600,
                        Margin = new Thickness(10, 0, 0, 0)
                    };

                    txtBox.Init(mAction.GetOrCreateInputParam(element.BindedString), isVENeeded: true);
                    ((Ginger.Actions.UCValueExpression)txtBox).ValueTextBox.Text = element.PossibleValues.ElementAt(0);
                    dynamicPanel.Children.Add(elementLabel);
                    dynamicPanel.Children.Add(txtBox);
                }
            }
            dynamicPage.Content = dynamicPanel;
            return(dynamicPage);
        }
        private void UpdateRelatedActions()
        {
            string previousSelectedControlAction = null;

            if (mActions != null)
            {
                if (mActions.CurrentItem != null)
                {
                    if (mActions.CurrentItem is ActUIElement)
                    {
                        previousSelectedControlAction = ((ActUIElement)mActions.CurrentItem).GetOrCreateInputParam(ActUIElement.Fields.ControlAction).ToString();
                    }
                }

                mActions.Clear();
            }

            if (cmbColSelectorValue.ComboBox.SelectedIndex != -1)
            {
                mAct.AddOrUpdateInputParamValue(ActUIElement.Fields.ColSelectorValue, ((GingerCore.General.ComboEnumItem)cmbColSelectorValue.ComboBox.SelectedItem).Value.ToString());
            }

            string description = "";
            string rowVal      = "";
            string colVal      = "";

            if (RowNum.IsChecked == true)
            {
                mAct.AddOrUpdateInputParamValue(ActUIElement.Fields.LocateRowType, "Row Number");
                if (RowSelectorValue != null)
                {
                    if (RowSelectorValue.ComboBox.SelectedIndex != -1)
                    {
                        rowVal = RowSelectorValue.ComboBox.SelectedItem.ToString();
                    }
                    else
                    {
                        rowVal = RowSelectorValue.ComboBox.Text;
                    }
                    description = " on Row:" + rowVal;
                }
            }
            else if (AnyRow.IsChecked == true)
            {
                mAct.AddOrUpdateInputParamValue(ActUIElement.Fields.LocateRowType, "Any Row");
                description = " on Random Row";
            }
            else if (BySelectedRow.IsChecked == true)
            {
                mAct.AddOrUpdateInputParamValue(ActUIElement.Fields.LocateRowType, "By Selected Row");
                description = " on Selected Row";
            }
            else if (Where.IsChecked == true)
            {
                mAct.AddOrUpdateInputParamValue(ActUIElement.Fields.LocateRowType, "Where");
                description = " on Row with condition";
            }

            if (cmbColumnValue != null)
            {
                if (cmbColumnValue.ComboBox.SelectedIndex != -1)
                {
                    colVal = cmbColumnValue.ComboBox.SelectedItem.ToString();
                }
                else
                {
                    colVal = cmbColumnValue.ComboBox.Text;
                }
                description = description + " and Column:" + colVal;
            }

            if (eBaseWindow.Equals(BaseWindow.WindowExplorer) && cmbColSelectorValue.ComboBox.SelectedIndex != -1 && WhereColumn != null && WhereColumn.ComboBox.SelectedIndex != -1 && RowSelectorValue != null &&
                WhereProperty != null && WhereProperty.ComboBox.SelectedIndex != -1 && WhereOperator != null && WhereOperator.ComboBox.SelectedIndex != -1)
            {
                List <string> descriptionString = new List <string>();
                descriptionString.Add("Get Value of Cell: ");
                descriptionString.Add("Set Value of Cell: ");
                descriptionString.Add("Type Value in Cell: ");
                descriptionString.Add("Click Cell: ");
                descriptionString.Add("WinClick Cell: ");
                descriptionString.Add("Get Selected Cell from Column: ");

                ActUIElement actObj = (ActUIElement)mAct.CreateCopy();
                actObj.AddOrUpdateInputParamValue(ActUIElement.Fields.ControlAction, ActUIElement.eElementAction.SetValue.ToString());
                actObj.Description = "Set Value of Cell: " + description;
                actObj.GetOrCreateInputParam(ActUIElement.Fields.WhereColSelector, mAct.GetInputParamValue(ActUIElement.Fields.WhereColSelector));
                actObj.GetOrCreateInputParam(ActUIElement.Fields.WhereColumnTitle, mAct.GetInputParamValue(ActUIElement.Fields.WhereColumnTitle));
                actObj.GetOrCreateInputParam(ActUIElement.Fields.WhereColumnValue, mAct.GetInputParamValue(ActUIElement.Fields.WhereColumnValue));
                actObj.GetOrCreateInputParam(ActUIElement.Fields.WhereOperator, mAct.GetInputParamValue(ActUIElement.Fields.WhereOperator));
                actObj.GetOrCreateInputParam(ActUIElement.Fields.WhereProperty, mAct.GetInputParamValue(ActUIElement.Fields.WhereProperty));
                mActions.Add(actObj);


                ActUIElement actObj1 = (ActUIElement)mAct.CreateCopy();;
                actObj1.AddOrUpdateInputParamValue(ActUIElement.Fields.ControlAction, ActUIElement.eElementAction.GetValue.ToString());
                actObj1.Description = "Get Value of Cell: " + description;
                actObj1.GetOrCreateInputParam(ActUIElement.Fields.WhereColSelector, mAct.GetInputParamValue(ActUIElement.Fields.WhereColSelector));
                actObj1.GetOrCreateInputParam(ActUIElement.Fields.WhereColumnTitle, mAct.GetInputParamValue(ActUIElement.Fields.WhereColumnTitle));
                actObj1.GetOrCreateInputParam(ActUIElement.Fields.WhereColumnValue, mAct.GetInputParamValue(ActUIElement.Fields.WhereColumnValue));
                actObj1.GetOrCreateInputParam(ActUIElement.Fields.WhereOperator, mAct.GetInputParamValue(ActUIElement.Fields.WhereOperator));
                actObj1.GetOrCreateInputParam(ActUIElement.Fields.WhereProperty, mAct.GetInputParamValue(ActUIElement.Fields.WhereProperty));
                mActions.Add(actObj1);


                ActUIElement actObj2 = (ActUIElement)mAct.CreateCopy();;
                actObj2.AddOrUpdateInputParamValue(ActUIElement.Fields.ControlAction, ActUIElement.eElementAction.Click.ToString());
                actObj2.Description = "Click Cell: " + description;
                actObj2.GetOrCreateInputParam(ActUIElement.Fields.WhereColSelector, mAct.GetInputParamValue(ActUIElement.Fields.WhereColSelector));
                actObj2.GetOrCreateInputParam(ActUIElement.Fields.WhereColumnTitle, mAct.GetInputParamValue(ActUIElement.Fields.WhereColumnTitle));
                actObj2.GetOrCreateInputParam(ActUIElement.Fields.WhereColumnValue, mAct.GetInputParamValue(ActUIElement.Fields.WhereColumnValue));
                actObj2.GetOrCreateInputParam(ActUIElement.Fields.WhereOperator, mAct.GetInputParamValue(ActUIElement.Fields.WhereOperator));
                actObj2.GetOrCreateInputParam(ActUIElement.Fields.WhereProperty, mAct.GetInputParamValue(ActUIElement.Fields.WhereProperty));
                mActions.Add(actObj2);
            }
            if (previousSelectedControlAction != null)
            {
                if (mActions != null)
                {
                    foreach (ActUIElement act in mActions)
                    {
                        if (act.GetOrCreateInputParam(ActUIElement.Fields.ControlAction).ToString() == previousSelectedControlAction)
                        {
                            mActions.CurrentItem = act;
                            break;
                        }
                    }
                }
            }
            if (mActions != null && mActions.CurrentItem == null && mActions.Count > 0)
            {
                mActions.CurrentItem = mActions[0];
            }
        }