Example #1
0
 /// <summary>
 /// Главное окно документов.
 /// </summary>
 public MainWindowDocs(WinToolBar mainDocsMenu)
     : base("Главное окно документов")
 {
     _mainDocsCreateBar = mainDocsMenu;
     _createDocButton   = new WinButton(_mainDocsCreateBar);
     Wait();
 }
Example #2
0
        /// <summary>
        /// CloseSVConsole - Use 'CloseSVConsoleParams' to pass parameters into this method.
        /// </summary>
        public void CloseSVConsole()
        {
            #region Variable Declarations
            WinToolBar  uIRunningapplicationsToolBar = this.UIRunningapplicationsWindow.UIRunningapplicationsClient.UIRunningapplicationsToolBar;
            WinMenuItem uIStartTaskManagerMenuItem   = this.UIItemWindow.UIContextMenu.UIStartTaskManagerMenuItem;
            WinList     uIItemList         = this.UIWindowsTaskManagerWindow.UIProcessesWindow.UIItemList;
            WinButton   uIEndProcessButton = this.UIWindowsTaskManagerWindow.UIEndProcessWindow.UIEndProcessButton;
            WinButton   uIEndprocessButton = this.UIWindowsTaskManagerWindow1.UIWindowsTaskManagerPane.UIEndprocessButton;
            #endregion

            // Right-Click 'Running applications' tool bar
            Mouse.Click(uIRunningapplicationsToolBar, MouseButtons.Right, ModifierKeys.None, new Point(539, 19));

            // Click 'Start Task Manager' menu item
            Mouse.Click(uIStartTaskManagerMenuItem, new Point(75, 13));

            // Select 'Console.exe *32' in 'Unknown Name' list box
            uIItemList.SelectedItemsAsString = this.CloseSVConsoleParams.UIItemListSelectedItemsAsString;

            // Click '&End Process' button
            Mouse.Click(uIEndProcessButton, new Point(31, 10));

            // Click 'End process' button
            Mouse.Click(uIEndprocessButton, new Point(26, 7));
        }
Example #3
0
        private WinToolBar MainMenuCreateBar()
        {
            WinToolBar mainMenuCreateBar = new WinToolBar(_mainWindow);

            mainMenuCreateBar.SearchProperties[UITestControl.PropertyNames.Name] = "Создать";
            return(mainMenuCreateBar);
        }
Example #4
0
        private static WinToolBar GetWinToolBar(string uiTitle, string uiType)
        {
            var htmlcontrolWin = new WinToolBar(Window.Locate(uiTitle, uiType));
            var htmlControlWin = htmlcontrolWin;

            htmlControlWin.TechnologyName = TechnologyNameWin;
            return(htmlControlWin);
        }
 public static void ClickToolBar(string windowtitle, string toolbarname)
 {
     WinWindow addposn = new WinWindow();
     addposn.SearchProperties.Add(WinWindow.PropertyNames.Name, windowtitle, PropertyExpressionOperator.Contains);
     WinToolBar addposbtn = new WinToolBar(addposn);
     addposbtn.SearchProperties.Add(WinToolBar.PropertyNames.Name, toolbarname);
     Mouse.Click(addposbtn);
 }
        /// <summary>
        /// RecordedMethod1
        /// </summary>
        public void RecordedMethod1()
        {
            #region Variable Declarations
            WinToolBar uIViewToolBar = this.UISystemInventoryLOWISWindow.UIHomePane.UIViewToolBar;
            #endregion

            // Click 'View' tool bar
            Mouse.Click(uIViewToolBar, new Point(18, 45));
        }
        public static void ClickToolBar(string windowtitle, string toolbarname)
        {
            WinWindow addposn = new WinWindow();

            addposn.SearchProperties.Add(WinWindow.PropertyNames.Name, windowtitle, PropertyExpressionOperator.Contains);
            WinToolBar addposbtn = new WinToolBar(addposn);

            addposbtn.SearchProperties.Add(WinToolBar.PropertyNames.Name, toolbarname);
            Mouse.Click(addposbtn);
        }
Example #8
0
        /// <summary>
        /// RecordedMethod4
        /// </summary>
        public void RecordedMethod4()
        {
            #region Variable Declarations
            WinToolBar uIRunningapplicationsToolBar = this.UIRunningapplicationsWindow.UIRunningapplicationsClient.UIRunningapplicationsToolBar;
            #endregion

            // Click 'Running applications' tool bar
            Mouse.Click(uIRunningapplicationsToolBar, new Point(931, 21));

            // Click 'Running applications' tool bar
            Mouse.Click(uIRunningapplicationsToolBar, new Point(1032, 26));
        }
Example #9
0
        static WinButton GetFileNoteButton()
        {
            var window = GetWordWindow();
            var ribbonWindow = GetWordRibbon(window);

            var templatesToolbar = new WinToolBar(ribbonWindow);
            templatesToolbar.SearchProperties[WinToolBar.PropertyNames.Name] = "Templates";
            templatesToolbar.WindowTitles.Add("Blank.docx - Word");

            var fileNoteButton = new WinButton(templatesToolbar);
            fileNoteButton.SearchProperties[WinButton.PropertyNames.Name] = "BCC FileNotes";
            fileNoteButton.WindowTitles.Add("Blank.docx - Word");
            return fileNoteButton;
        }
        public UITestControl GetAllWellNavigatorButton(string ControlName)
        {
            WinWindow AllWellNavigator = new WinWindow(GetMainWindow());
            AllWellNavigator.SearchConfigurations.Add(SearchConfiguration.AlwaysSearch);
            AllWellNavigator.SearchProperties.Add(WinWindow.PropertyNames.ClassName, "ToolbarWindow32");
            AllWellNavigator.SearchProperties[WinWindow.PropertyNames.Instance] = "5";
            AllWellNavigator.WindowTitles.Add(new PropertyExpression(WinWindow.PropertyNames.Name, "LOWIS:", PropertyExpressionOperator.Contains).ToString());

            WinToolBar AllWellNavToolBar = new WinToolBar(AllWellNavigator);
            AllWellNavToolBar.SearchConfigurations.Add(SearchConfiguration.AlwaysSearch);
            AllWellNavToolBar.SearchProperties.Add(WinToolBar.PropertyNames.ClassName, "ToolbarWindow32");
            AllWellNavToolBar.WindowTitles.Add(new PropertyExpression(WinWindow.PropertyNames.Name, "LOWIS:", PropertyExpressionOperator.Contains).ToString());
            AllWellNavToolBar.SearchProperties.Add(WinToolBar.PropertyNames.ControlId, "0");

            UITestControlCollection ToolBarRefreshButton = AllWellNavToolBar.GetChildren();
            UITestControl mybar = ToolBarRefreshButton[3];
            UITestControlCollection mycol = mybar.GetChildren();   //6 is Favorites 7 Is Search Well
            UITestControl ReturnThis = new UITestControl();
            switch (ControlName)
            {
                case "Refresh":
                    {
                        ReturnThis = mycol[2];
                        break;
                    }
                case "Favorites":
                    {
                        ReturnThis = mycol[6];
                        break;
                    }
                case "SearchWell":
                    {
                        ReturnThis = mycol[7];
                        break;
                    }
            }

            return ReturnThis;
        }
        public string SaveWordDoco()
        {
            //WinButton FileButton = new WinButton();
            //FileButton.SearchConfigurations.Add(SearchConfiguration.AlwaysSearch);
            //FileButton.SearchProperties[WinButton.PropertyNames.Name] = "File Tab";

            //Mouse.DoubleClick(FileButton);

            WinWindow SaveAs = new WinWindow();
            SaveAs.SearchProperties[WinWindow.PropertyNames.Name] = "Save As";
            SaveAs.SearchProperties[WinWindow.PropertyNames.ClassName] = "#32770";
            SaveAs.WindowTitles.Add("Save As");

            WinWindow ItemWin = new WinWindow(SaveAs);
            ItemWin.SearchProperties[WinWindow.PropertyNames.ClassName] = "ToolbarWindow32";
            ItemWin.SearchProperties[WinWindow.PropertyNames.Instance] = "5";
            ItemWin.WindowTitles.Add("Save As");

            WinToolBar Toolbar = new WinToolBar(ItemWin);
            Toolbar.WindowTitles.Add("Save As");

            WinButton PreviousLocations = new WinButton(Toolbar);
            PreviousLocations.SearchProperties[WinButton.PropertyNames.Name] = "Previous Locations";
            PreviousLocations.WindowTitles.Add("Save As");
            System.Threading.Thread.Sleep(2000);
            Mouse.Click(PreviousLocations);

            WinWindow ItemWin1 = new WinWindow(SaveAs);
            ItemWin1.SearchProperties[WinWindow.PropertyNames.ControlId] = "41477";
            ItemWin1.SearchProperties[WinWindow.PropertyNames.Instance] = "4";
            ItemWin1.WindowTitles.Add("Save As");

            WinEdit AddressBar = new WinEdit(ItemWin1);
            AddressBar.SearchProperties[WinEdit.PropertyNames.Name] = "Address";
            AddressBar.WindowTitles.Add("Save As");

            AddressBar.Text = ExportLocation ;
            Keyboard.SendKeys("{ENTER}");

            WinEdit FileName = new WinEdit(SaveAs);
            FileName.SearchConfigurations.Add(SearchConfiguration.AlwaysSearch);
            FileName.SearchProperties.Add(WinEdit.PropertyNames.Name, "File name:");

            FileName.Text = BeamAnalysisWord;

            WinWindow SaveWindow = new WinWindow(SaveAs);
            SaveWindow.SearchProperties[WinWindow.PropertyNames.ControlId] = "1";
            SaveWindow.WindowTitles.Add("Save As");

            WinButton SaveButton = new WinButton(SaveWindow);
            SaveButton.SearchProperties[WinButton.PropertyNames.Name] = "Save";
            SaveButton.WindowTitles.Add("Save As");
            Thread.Sleep(2000);
            Mouse.Click(SaveButton);

            return (ExportLocation + BeamAnalysisWord);
        }
Example #12
0
        private static void TranslateTestData(string[] testDataRow)
        {
            string[] dataRow = testDataRow;
            //check key word
            string keyWord = dataRow[2].Trim();
            //text of web element
            string elementText;

            //if steps begins with %, skip it
            if (dataRow[1].Trim().Substring(0, 1) == "%")
            {
                keyWord = "%";
            }
            switch (keyWord)
            {
            //if key word is "SetScreenResolution"
            case "SetScreenResolution":
                string   resolution      = dataRow[5].Trim();
                string[] resolutionArray = resolution.Split(new Char[] { ',', ';', '*' });
                screenResolution = new Size(Convert.ToInt32(resolutionArray[0].Trim()), Convert.ToInt32(resolutionArray[1].Trim()));
                if (TestExecuter.driver != null)
                {
                    TestExecuter.driver.Manage().Window.Size = screenResolution;
                    TestExecuter.driver.Manage().Window.Position = new Point(0, 0);
                }
                break;

            //if key word is "OpenBrowser"
            case "OpenBrowser":
                //check Para
                string browserName = dataRow[5].Trim().ToUpper();

                if (browserName == "IE")      //open IE
                {
                    var options = new InternetExplorerOptions
                    {
                        BrowserAttachTimeout = TimeSpan.FromSeconds(30),
                        RequireWindowFocus   = false,
                        IntroduceInstabilityByIgnoringProtectedModeSettings = true,
                        IgnoreZoomLevel    = true,
                        EnsureCleanSession = true,
                        //PageLoadStrategy = InternetExplorerPageLoadStrategy.Normal,
                        //ValidateCookieDocumentType = true,
                        InitialBrowserUrl           = "about:Tabs",
                        BrowserCommandLineArguments = "-noframemerging"
                    };
                    TestExecuter.driver = new InternetExplorerDriver(@"..\..\..\KeywordDrivenTest\Bin\Debug", options, TimeSpan.FromSeconds(30));
                }
                else
                {
                    if (browserName == "CHROME")      //open Chrome
                    {
                        TestExecuter.driver = new ChromeDriver(@"..\..\..\KeywordDrivenTest\Bin\Debug");
                    }
                    else       //error message
                    {
                        TestExecuter.sw.WriteLine("Browser is not supported ! Please input 'IE' or 'Chrome' in Excel file. ");
                        TestExecuter.testResult = false;
                        break;
                    }
                }
                TestExecuter.driver.Manage().Window.Size = screenResolution;
                TestExecuter.driver.Manage().Window.Position = new Point(0, 0);
                // Set implicit wait timeouts to 60 secs
                TestExecuter.driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(30);
                ICapabilities capabilities = ((RemoteWebDriver)TestExecuter.driver).Capabilities;
                TestExecuter.sw.WriteLine(@"Browser Version: <" + browserName + " " + capabilities.Version + ">");
                break;

            //if key word is "NavigateTo"
            case "NavigateTo":
                //go to URL
                TestExecuter.driver.Navigate().GoToUrl(dataRow[5].Trim());
                break;

            //if key word is "SendKeys"
            case "SendKeys":
                GetElement(dataRow[3], dataRow[4]).Clear();
                ((IJavaScriptExecutor)TestExecuter.driver).ExecuteScript("arguments[0].style.opacity='1'", GetElement(dataRow[3], dataRow[4]));
                GetElement(dataRow[3], dataRow[4]).SendKeys(dataRow[5].Trim());
                break;

            //if key word is "SendKeys"
            case "SendControlKeys":
                SendControlKeys(dataRow[3], dataRow[4], dataRow[5]);
                break;

            //if key word is "Click"
            case "Click":
                if (TestExecuter.driver != null)
                {
                    //get text from what you click
                    oldWindowHandle = TestExecuter.driver.CurrentWindowHandle;
                    string txt = GetElement(dataRow[3], dataRow[4]).Text;
                    ((IJavaScriptExecutor)TestExecuter.driver).ExecuteScript("arguments[0].click();", GetElement(dataRow[3], dataRow[4]));
                    //if it is not download operation
                    if (!txt.ToUpper().Contains("DOWNLOAD"))
                    {
                        //go to latest window
                        TestExecuter.driver.SwitchTo().Window(TestExecuter.driver.WindowHandles.Last());
                        newWindowHandle = TestExecuter.driver.CurrentWindowHandle;
                    }
                    //if it is open button to load client
                    if (txt.ToUpper().Equals("OPEN"))
                    {
                        //maximize windows
                        List <string> lstWindow = TestExecuter.driver.WindowHandles.ToList();
                        foreach (var handle in lstWindow)
                        {
                            if (TestExecuter.driver.SwitchTo().Window(handle).Manage().Window.Size.Height != screenResolution.Height)
                            {
                                TestExecuter.driver.SwitchTo().Window(handle).Manage().Window.Size     = screenResolution;
                                TestExecuter.driver.SwitchTo().Window(handle).Manage().Window.Position = new Point(0, 0);
                            }
                        }
                    }
                    txt = null;
                }

                break;

            //if key word is "DoubleClick"
            case "DoubleClick":
                //get old window handle before double click
                if (TestExecuter.driver != null)
                {
                    oldWindowHandle = TestExecuter.driver.CurrentWindowHandle;
                }
                //create Actions object
                Actions doubleClickBuilder = new Actions(TestExecuter.driver);
                //double click action
                doubleClickBuilder.DoubleClick(GetElement(dataRow[3], dataRow[4])).Build().Perform();
                //get new window handle after click
                TestExecuter.driver.SwitchTo().Window(TestExecuter.driver.WindowHandles.Last());
                newWindowHandle = TestExecuter.driver.CurrentWindowHandle;
                //max new window
                if (oldWindowHandle != newWindowHandle)
                {
                    TestExecuter.driver.Manage().Window.Maximize();
                }
                break;

            //if key word is "MoveToElement"
            case "MoveToElement":
                //create Actions object
                Actions moveToBuilder = new Actions(TestExecuter.driver);
                //move to element action
                moveToBuilder.MoveToElement(GetElement(dataRow[3], dataRow[4])).Build().Perform();
                break;

            //if key word is "Wait"
            case "Wait":
                int s = Convert.ToInt32(dataRow[5].Trim());     //s is second
                Thread.Sleep(s * 1000);
                break;

            //if key word is "RefreshPage"
            case "RefreshPage":
                Actions actions = new Actions(TestExecuter.driver);
                actions.KeyDown(OpenQA.Selenium.Keys.Control).SendKeys(OpenQA.Selenium.Keys.F5).Perform();
                break;

            //if key word is "ScrollToElement"
            case "ScrollToElement":
                ((IJavaScriptExecutor)TestExecuter.driver).ExecuteScript("arguments[0].scrollIntoView();", GetElement(dataRow[3], dataRow[4]));
                break;

            //if key word is "GetElement(dataRow[3], dataRow[4])"
            case "SwitchToFrame":
                TestExecuter.driver.SwitchTo().Frame(GetElement(dataRow[3], dataRow[4]));
                break;

            //if key word is "VerifyElementExist"
            case "VerifyElementExist":
                if (!GetElement(dataRow[3], dataRow[4]).Displayed)
                {
                    TestExecuter.sw.WriteLine("Test failed in step: <" + dataRow[1] + ">, Reason: ");
                    TestExecuter.sw.WriteLine("Web Element" + dataRow[4].ToString() + "is not displayed !");
                    TestExecuter.testResult = false;
                }
                else
                {
                    //if it is client selection page
                    if (dataRow[4].Trim() == ".//*[@id='client-selection-form']/div[1]/span[1]")
                    {
                        if (TestExecuter.driver.FindElement(By.XPath(".//*[@id='client-selection-form']/div[1]/span[1]")).Text.Trim().Length < 28)
                        {
                            TestExecuter.sw.WriteLine("RealSuite Version: < XXX >");
                        }
                        else
                        {
                            TestExecuter.buildVersion = TestExecuter.driver.FindElement(By.XPath(".//*[@id='client-selection-form']/div[1]/span[1]")).Text.Trim().Substring(18, 10);
                            //write build version to log
                            TestExecuter.sw.WriteLine("RealSuite Version: <" + TestExecuter.buildVersion + ">");
                        }
                    }
                }
                break;

            //if key word is "VerifyValueGreaterThan"
            case "VerifyValueGreaterThan":
                elementText = GetElement(dataRow[3], dataRow[4]).Text;
                if (Convert.ToDouble(elementText) <= Convert.ToDouble(dataRow[5]))
                {
                    TestExecuter.sw.WriteLine("Test failed in step: <" + dataRow[1] + ">, Reason:");
                    TestExecuter.sw.WriteLine("Web Element <" + dataRow[3] + " : " + dataRow[4].ToString() + "> is not greater than " + "'" + dataRow[5] + "'");
                    TestExecuter.testResult = false;
                }
                break;

            //if key word is "VerifyValueLessThan"
            case "VerifyValueLessThan":
                elementText = GetElement(dataRow[3], dataRow[4]).Text;
                if (Convert.ToDouble(elementText) >= Convert.ToDouble(dataRow[5]))
                {
                    TestExecuter.sw.WriteLine("Test failed in step: <" + dataRow[1] + ">, Reason:");
                    TestExecuter.sw.WriteLine("Web Element <" + dataRow[3] + " : " + dataRow[4].ToString() + "> is not less than " + "'" + dataRow[5] + "'");
                    TestExecuter.testResult = false;
                }
                break;

            //if key word is "VerifyValueEqualTo"
            case "VerifyValueEqualTo":
                elementText = GetElement(dataRow[3], dataRow[4]).Text.Trim();
                if (elementText != dataRow[5].Trim())
                {
                    TestExecuter.sw.WriteLine("Test failed in step: <" + dataRow[1] + ">, Reason:");
                    TestExecuter.sw.WriteLine("Web Element <" + dataRow[3] + " : " + dataRow[4].ToString() + "> is not equal to " + "'" + dataRow[5] + "'");
                    TestExecuter.testResult = false;
                }
                break;

            //if key word is "VerifyValueNotEqualTo"
            case "VerifyValueNotEqualTo":
                elementText = GetElement(dataRow[3], dataRow[4]).Text.Trim();
                if (elementText == dataRow[5].Trim())
                {
                    TestExecuter.sw.WriteLine("Test failed in step: <" + dataRow[1] + ">, Reason:");
                    TestExecuter.sw.WriteLine("Web Element <" + dataRow[3] + " : " + dataRow[4].ToString() + "> is equal to " + "'" + dataRow[5] + "'");
                    TestExecuter.testResult = false;
                }
                break;

            //if key word is "VerifyValueContain"
            case "VerifyValueContain":
                elementText = GetElement(dataRow[3], dataRow[4]).Text;
                if (!elementText.Contains(dataRow[5]))
                {
                    TestExecuter.sw.WriteLine("Test failed in step: <" + dataRow[1] + ">, Reason:");
                    TestExecuter.sw.WriteLine("Web Element <" + dataRow[3] + " : " + dataRow[4].ToString() + "> doesn't contain " + "'" + dataRow[5] + "'");
                    TestExecuter.testResult = false;
                }
                break;

            //if key word is "VerifyValueNotContain"
            case "VerifyValueNotContain":
                elementText = GetElement(dataRow[3], dataRow[4]).Text;
                if (elementText.Contains(dataRow[5]))
                {
                    TestExecuter.sw.WriteLine("Test failed in step: <" + dataRow[1] + ">, Reason:");
                    TestExecuter.sw.WriteLine("Web Element <" + dataRow[3] + " : " + dataRow[4].ToString() + "> doesn't contain " + "'" + dataRow[5] + "'");
                    TestExecuter.testResult = false;
                }
                break;

            //if key word is "GoToNextWindow"
            case "GoToNextWindow":
                TestExecuter.driver.SwitchTo().Window(newWindowHandle);
                break;

            //if key word is "GoToNextWindow"
            case "GotoPreviousWindow":
                TestExecuter.driver.SwitchTo().Window(oldWindowHandle);
                break;

            //if key word is "CloseBrowser"
            case "CloseBrowser":
                TestExecuter.driver.Close();
                break;

            //if key word is "WinSaveFile"
            case "WinSaveFile(IE11)":
                string        titleDownload         = TestExecuter.driver.Title;
                BrowserWindow browserWindowDownload = new BrowserWindow();
                browserWindowDownload.SearchProperties[UITestControl.PropertyNames.ClassName] = "IEFrame";
                browserWindowDownload.WindowTitles.Add(titleDownload);
                WinToolBar notificationBar = new WinToolBar(browserWindowDownload);
                notificationBar.SearchProperties.Add(WinToolBar.PropertyNames.Name, "Notification", PropertyExpressionOperator.EqualTo);
                WinSplitButton saveButton = new WinSplitButton(notificationBar);
                saveButton.SearchProperties.Add(WinButton.PropertyNames.Name, "Save", PropertyExpressionOperator.EqualTo);
                Mouse.Click(saveButton);
                break;

            //if key word is "WinClickOK"
            case "WinClickOK(IE11)":
                string        titlePop = TestExecuter.driver.Title;
                BrowserWindow browser  = new BrowserWindow();
                browser.SearchProperties[UITestControl.PropertyNames.ClassName] = "IEFrame";
                browser.WindowTitles.Add(titlePop);
                WinWindow pop = new WinWindow(null);
                pop.SearchProperties.Add(WinWindow.PropertyNames.Name, "Message from webpage", PropertyExpressionOperator.EqualTo);
                WinButton ok = new WinButton(pop);
                ok.SearchProperties.Add(WinButton.PropertyNames.Name, "OK", PropertyExpressionOperator.EqualTo);
                Mouse.Click(ok);
                break;

            //if key word is "WinUploadFile"
            case "WinUploadFile":
                WinWindow UploadWindow = new WinWindow(null);
                UploadWindow.SearchProperties.Add("Name", "Choose File to Upload");
                WinEdit FileNameEdit = new WinEdit(UploadWindow);
                FileNameEdit.SearchProperties.Add("Name", "File name:");
                WinButton OpenBtn = new WinButton(UploadWindow);
                OpenBtn.SearchProperties.Add("Name", "Open");
                Keyboard.SendKeys(FileNameEdit, @"C:\Users\pans\Downloads\53360.txt");
                Mouse.Click(OpenBtn);
                break;

            default:
                break;
            }
        }
        public string GridExport(string GridName, string WhenExported)
        {
            string Fileoutput = String.Empty;
            Trace.WriteLine("Inside GridExport method , waiting");
            System.Threading.Thread.Sleep(5000);
            WinWindow ItemWindow = new WinWindow(GetMainWindow());
            ItemWindow.SearchProperties[WinWindow.PropertyNames.ClassName] = "#32770";
            ItemWindow.SearchProperties[WinWindow.PropertyNames.Instance] = "45";
            ItemWindow.WindowTitles.Add(new PropertyExpression(WinWindow.PropertyNames.Name, "LOWIS:", PropertyExpressionOperator.Contains).ToString());

            WinControl ItemDialog = new WinControl(ItemWindow);
            ItemDialog.SearchProperties[UITestControl.PropertyNames.ControlType] = "Dialog";
            ItemDialog.WindowTitles.Add(new PropertyExpression(WinWindow.PropertyNames.Name, "LOWIS:", PropertyExpressionOperator.Contains).ToString());

            WinClient Grid = new WinClient(ItemDialog);
            Grid.SearchConfigurations.Add(SearchConfiguration.AlwaysSearch);
            Grid.SearchProperties[WinControl.PropertyNames.Name] = "Spread Control (spr32d70)";
            Grid.SearchProperties[WinControl.PropertyNames.ClassName] = "fpSpread70";
            Grid.WindowTitles.Add(new PropertyExpression(WinWindow.PropertyNames.Name, "LOWIS:", PropertyExpressionOperator.Contains).ToString());

            Grid.DrawHighlight();
            var GridPostion = Grid.BoundingRectangle;
            Point GridClick = new Point(GridPostion.X + 75, GridPostion.Y + 75);
            Mouse.Move(GridClick);
            Trace.WriteLine("Moved mouse to gridclick position");
            Mouse.Click(MouseButtons.Right);
            Trace.WriteLine("Right Clicked on Grid " + GridName);
            System.Threading.Thread.Sleep(1800);

            WinWindow ItemWin2 = new WinWindow();
            ItemWin2.SearchProperties[WinWindow.PropertyNames.AccessibleName] = "Context";
            ItemWin2.SearchProperties[WinWindow.PropertyNames.ClassName] = "#32768";

            WinMenu ContextMenu = new WinMenu(ItemWin2);
            ContextMenu.SearchProperties[WinMenu.PropertyNames.Name] = "Context";

            WinMenuItem ExportItem = new WinMenuItem(ContextMenu);
            ExportItem.SearchProperties[WinMenuItem.PropertyNames.Name] = "Export...";
            Mouse.Hover(ExportItem);
            Mouse.Click(ExportItem);
            Trace.WriteLine("Clicked Export Context Menu Button on grid " + GridName);

            switch (GridName)
            {
                case "BeamWellGroupConfig":
                    {
                        string BeamConfigExportLocation = ExportLocation;
                        string BeamConfigExportFileName = ConfigurationManager.AppSettings["BeamConfigExportFileName"];

                        WinWindow SaveBeamWellConfig = new WinWindow();
                        SaveBeamWellConfig.SearchProperties.Add(new PropertyExpression(WinWindow.PropertyNames.Name, "Save Beam Well Group Configuration", PropertyExpressionOperator.Contains));
                        SaveBeamWellConfig.SearchProperties[WinWindow.PropertyNames.ClassName] = "#32770";
                        SaveBeamWellConfig.WindowTitles.Add((new PropertyExpression(WinWindow.PropertyNames.Name, "Save Beam Well Group Configuration", PropertyExpressionOperator.Contains).ToString()));

                        WinWindow ItemWindowDialog = new WinWindow(SaveBeamWellConfig);
                        ItemWindowDialog.SearchProperties[WinWindow.PropertyNames.ClassName] = "ToolbarWindow32";
                        //ItemWindowDialog.SearchProperties[WinWindow.PropertyNames.Instance] = "4";
                        ItemWindowDialog.WindowTitles.Add((new PropertyExpression(WinToolBar.PropertyNames.Name, "Save Beam Well Group Configuration", PropertyExpressionOperator.Contains).ToString()));

                        WinToolBar LocationBar = new WinToolBar(ItemWindowDialog);
                        LocationBar.WindowTitles.Add((new PropertyExpression(WinToolBar.PropertyNames.Name, "Save Beam Well Group Configuration", PropertyExpressionOperator.Contains).ToString()));

                        WinButton PreviousLocation = new WinButton(LocationBar);
                        PreviousLocation.SearchConfigurations.Add(SearchConfiguration.AlwaysSearch);
                        PreviousLocation.SearchProperties[WinButton.PropertyNames.Name] = "Previous Locations";
                        PreviousLocation.WindowTitles.Add((new PropertyExpression(WinWindow.PropertyNames.Name, "Save Beam Well Group Configuration", PropertyExpressionOperator.Contains).ToString()));

                        Mouse.Click(PreviousLocation);
                        Trace.WriteLine("Clicked Previous Location on Save Dialog ");

                        WinWindow ItemWin1 = new WinWindow(SaveBeamWellConfig);
                        ItemWin1.SearchConfigurations.Add(SearchConfiguration.AlwaysSearch);
                        ItemWin1.SearchProperties.Add(WinWindow.PropertyNames.ControlId, "41477");
                        ItemWin1.WindowTitles.Add((new PropertyExpression(WinWindow.PropertyNames.Name, "Save Beam Well Group Configuration", PropertyExpressionOperator.Contains).ToString()));

                        WinEdit AddressEdit = new WinEdit(ItemWin1);
                        AddressEdit.SearchConfigurations.Add(SearchConfiguration.AlwaysSearch);
                        AddressEdit.SearchProperties.Add(WinEdit.PropertyNames.Name, "Address");
                        AddressEdit.WindowTitles.Add((new PropertyExpression(WinWindow.PropertyNames.Name, "Save Beam Well Group Configuration", PropertyExpressionOperator.Contains).ToString()));

                        AddressEdit.Text = BeamConfigExportLocation;
                        Trace.WriteLine("Set export ouput path to " + BeamConfigExportLocation);

                        //Keyboard.SendKeys(BeamConfigExportLocation);
                        Keyboard.SendKeys("{ENTER}");
                        Trace.WriteLine("Set ENTER key");

                        WinPane DPane = new WinPane(SaveBeamWellConfig);
                        DPane.SearchProperties[WinControl.PropertyNames.Name] = "Details Pane";
                        DPane.WindowTitles.Add((new PropertyExpression(WinWindow.PropertyNames.Name, "Save Beam Well Group Configuration", PropertyExpressionOperator.Contains).ToString()));

                        WinComboBox FileName = new WinComboBox(DPane);
                        FileName.SearchConfigurations.Add(SearchConfiguration.AlwaysSearch);
                        FileName.SearchProperties.Add(WinComboBox.PropertyNames.Name, "File name:");
                        FileName.WindowTitles.Add((new PropertyExpression(WinWindow.PropertyNames.Name, "Save Beam Well Group Configuration", PropertyExpressionOperator.Contains).ToString()));

                        FileName.EditableItem = BeamConfigExportFileName + WhenExported;
                        Trace.WriteLine("Set FileName of export file to " + BeamConfigExportFileName + WhenExported);
                        WinButton SaveExport = new WinButton(SaveBeamWellConfig);
                        SaveExport.SearchConfigurations.Add(SearchConfiguration.AlwaysSearch);
                        SaveExport.SearchProperties.Add(WinButton.PropertyNames.Name, "Save");
                        SaveExport.WindowTitles.Add((new PropertyExpression(WinWindow.PropertyNames.Name, "Save Beam Well Group Configuration", PropertyExpressionOperator.Contains).ToString()));

                        Mouse.Click(SaveExport);
                        Trace.WriteLine("Save Export button clicked");
                        Fileoutput = (BeamConfigExportLocation + BeamConfigExportFileName + WhenExported + ".txt");
                        CheckIfExportExists(Fileoutput);

                        break;
                    }
                case "MOP":
                    {
                        string MOPExportLocation = ExportLocation;
                        string MOPExportFileName = ConfigurationManager.AppSettings["MOPExportFileName"];

                        WinWindow SaveMOP = new WinWindow();
                        SaveMOP.SearchProperties.Add(new PropertyExpression(WinWindow.PropertyNames.Name, "Save Well Status_MOP_Type History", PropertyExpressionOperator.Contains));
                        SaveMOP.SearchProperties[WinWindow.PropertyNames.ClassName] = "#32770";
                        SaveMOP.WindowTitles.Add((new PropertyExpression(WinWindow.PropertyNames.Name, "Save Well Status_MOP_Type History", PropertyExpressionOperator.Contains).ToString()));

                        WinWindow ItemWindowDialog = new WinWindow(SaveMOP);
                        ItemWindowDialog.SearchProperties[WinWindow.PropertyNames.ClassName] = "ToolbarWindow32";
                        //ItemWindowDialog.SearchProperties[WinWindow.PropertyNames.Instance] = "4";
                        ItemWindowDialog.WindowTitles.Add((new PropertyExpression(WinWindow.PropertyNames.Name, "Save Well Status_MOP_Type History", PropertyExpressionOperator.Contains).ToString()));

                        WinToolBar LocationBar = new WinToolBar(ItemWindowDialog);
                        LocationBar.WindowTitles.Add((new PropertyExpression(WinWindow.PropertyNames.Name, "Save Well Status_MOP_Type History", PropertyExpressionOperator.Contains).ToString()));

                        WinButton PreviousLocation = new WinButton(LocationBar);
                        PreviousLocation.SearchProperties[WinButton.PropertyNames.Name] = "Previous Locations";
                        PreviousLocation.WindowTitles.Add((new PropertyExpression(WinWindow.PropertyNames.Name, "Save Well Status_MOP_Type History", PropertyExpressionOperator.Contains).ToString()));

                        Mouse.Click(PreviousLocation);
                        Trace.WriteLine("Clicked Previous Location on Save Dialog ");

                        WinWindow ItemWin1 = new WinWindow(SaveMOP);
                        ItemWin1.SearchProperties.Add(WinWindow.PropertyNames.ControlId, "41477");
                        ItemWin1.WindowTitles.Add((new PropertyExpression(WinWindow.PropertyNames.Name, "Save Well Status_MOP_Type History", PropertyExpressionOperator.Contains).ToString()));

                        WinEdit AddressEdit = new WinEdit(ItemWin1);
                        AddressEdit.SearchProperties.Add(WinEdit.PropertyNames.Name, "Address");
                        AddressEdit.WindowTitles.Add((new PropertyExpression(WinWindow.PropertyNames.Name, "Save Well Status_MOP_Type History", PropertyExpressionOperator.Contains).ToString()));

                        AddressEdit.Text = MOPExportLocation;
                        Trace.WriteLine("Set export ouput path to " + MOPExportLocation);

                        //Keyboard.SendKeys(BeamConfigExportLocation);
                        Keyboard.SendKeys("{ENTER}");
                        Trace.WriteLine("Set ENTER key");

                        WinPane DPane = new WinPane(SaveMOP);
                        DPane.SearchProperties[WinControl.PropertyNames.Name] = "Details Pane";
                        DPane.WindowTitles.Add((new PropertyExpression(WinWindow.PropertyNames.Name, "Save Well Status_MOP_Type History", PropertyExpressionOperator.Contains).ToString()));

                        WinComboBox FileName = new WinComboBox(DPane);
                        FileName.SearchConfigurations.Add(SearchConfiguration.AlwaysSearch);
                        FileName.SearchProperties.Add(WinComboBox.PropertyNames.Name, "File name:");
                        FileName.WindowTitles.Add((new PropertyExpression(WinWindow.PropertyNames.Name, "Save Well Status_MOP_Type History", PropertyExpressionOperator.Contains).ToString()));

                        FileName.EditableItem = MOPExportFileName + WhenExported;
                        Trace.WriteLine("Set FileName of export file to " + MOPExportFileName + WhenExported);
                        WinButton SaveExport = new WinButton(SaveMOP);
                        SaveExport.SearchConfigurations.Add(SearchConfiguration.AlwaysSearch);
                        SaveExport.SearchProperties.Add(WinButton.PropertyNames.Name, "Save");
                        SaveExport.WindowTitles.Add((new PropertyExpression(WinWindow.PropertyNames.Name, "Save Well Status_MOP_Type History", PropertyExpressionOperator.Contains).ToString()));

                        Mouse.Click(SaveExport);
                        Trace.WriteLine("Save Export button clicked");
                        Fileoutput = (MOPExportLocation + MOPExportFileName + WhenExported + ".txt");
                        CheckIfExportExists(Fileoutput);
                        break;
                    }
                case "ESPGroupConfigGrid":
                    {
                        string ESPGroupConfigGridExportLocation = ExportLocation;
                        string ESPGroupConfigGridExportFileName = ConfigurationManager.AppSettings["ESPConfigExportFileName"];

                        WinWindow SaveESPGroupConfigGrid = new WinWindow();
                        SaveESPGroupConfigGrid.SearchProperties.Add(new PropertyExpression(WinWindow.PropertyNames.Name, "Save ESP Well Group Configuration", PropertyExpressionOperator.Contains));
                        SaveESPGroupConfigGrid.SearchProperties[WinWindow.PropertyNames.ClassName] = "#32770";
                        SaveESPGroupConfigGrid.WindowTitles.Add((new PropertyExpression(WinWindow.PropertyNames.Name, "Save ESP Well Group Configuration", PropertyExpressionOperator.Contains).ToString()));

                        WinWindow ItemWindowDialog = new WinWindow(SaveESPGroupConfigGrid);
                        ItemWindowDialog.SearchProperties[WinWindow.PropertyNames.ClassName] = "ToolbarWindow32";
                        //ItemWindowDialog.SearchProperties[WinWindow.PropertyNames.Instance] = "4";
                        ItemWindowDialog.WindowTitles.Add((new PropertyExpression(WinWindow.PropertyNames.Name, "Save ESP Well Group Configuration", PropertyExpressionOperator.Contains).ToString()));

                        WinToolBar LocationBar = new WinToolBar(ItemWindowDialog);
                        LocationBar.WindowTitles.Add((new PropertyExpression(WinWindow.PropertyNames.Name, "Save ESP Well Group Configuration", PropertyExpressionOperator.Contains).ToString()));

                        WinButton PreviousLocation = new WinButton(LocationBar);
                        PreviousLocation.SearchProperties[WinButton.PropertyNames.Name] = "Previous Locations";
                        PreviousLocation.WindowTitles.Add((new PropertyExpression(WinWindow.PropertyNames.Name, "Save ESP Well Group Configuration", PropertyExpressionOperator.Contains).ToString()));

                        Mouse.Click(PreviousLocation);
                        Trace.WriteLine("Clicked Previous Location on Save Dialog ");

                        WinWindow ItemWin1 = new WinWindow(SaveESPGroupConfigGrid);
                        ItemWin1.SearchProperties.Add(WinWindow.PropertyNames.ControlId, "41477");
                        ItemWin1.WindowTitles.Add((new PropertyExpression(WinWindow.PropertyNames.Name, "Save ESP Well Group Configuration", PropertyExpressionOperator.Contains).ToString()));

                        WinEdit AddressEdit = new WinEdit(ItemWin1);
                        AddressEdit.SearchProperties.Add(WinEdit.PropertyNames.Name, "Address");
                        AddressEdit.WindowTitles.Add((new PropertyExpression(WinWindow.PropertyNames.Name, "Save ESP Well Group Configuration", PropertyExpressionOperator.Contains).ToString()));

                        AddressEdit.Text = ESPGroupConfigGridExportLocation;
                        Trace.WriteLine("Set export ouput path to " + ESPGroupConfigGridExportLocation);

                        //Keyboard.SendKeys(BeamConfigExportLocation);
                        Keyboard.SendKeys("{ENTER}");
                        Trace.WriteLine("Set ENTER key");

                        WinPane DPane = new WinPane(SaveESPGroupConfigGrid);
                        DPane.SearchProperties[WinControl.PropertyNames.Name] = "Details Pane";
                        DPane.WindowTitles.Add((new PropertyExpression(WinWindow.PropertyNames.Name, "Save ESP Well Group Configuration", PropertyExpressionOperator.Contains).ToString()));

                        WinComboBox FileName = new WinComboBox(DPane);
                        FileName.SearchConfigurations.Add(SearchConfiguration.AlwaysSearch);
                        FileName.SearchProperties.Add(WinComboBox.PropertyNames.Name, "File name:");
                        FileName.WindowTitles.Add((new PropertyExpression(WinWindow.PropertyNames.Name, "Save ESP Well Group Configuration", PropertyExpressionOperator.Contains).ToString()));

                        FileName.EditableItem = ESPGroupConfigGridExportFileName + WhenExported;
                        Trace.WriteLine("Set FileName of export file to " + ESPGroupConfigGridExportFileName + WhenExported);
                        WinButton SaveExport = new WinButton(SaveESPGroupConfigGrid);
                        SaveExport.SearchConfigurations.Add(SearchConfiguration.AlwaysSearch);
                        SaveExport.SearchProperties.Add(WinButton.PropertyNames.Name, "Save");
                        SaveExport.WindowTitles.Add((new PropertyExpression(WinWindow.PropertyNames.Name, "Save ESP Well Group Configuration", PropertyExpressionOperator.Contains).ToString()));

                        Mouse.Click(SaveExport);
                        Trace.WriteLine("Save Export button clicked");
                        Fileoutput = (ESPGroupConfigGridExportLocation + ESPGroupConfigGridExportFileName + WhenExported + ".txt");
                        CheckIfExportExists(Fileoutput);
                        break;
                    }
                case "PCPGroupConfigGrid":
                    {
                        string PCPGroupConfigGridExportLocation = ExportLocation;
                        string PCPGroupConfigGridExportFileName = ConfigurationManager.AppSettings["PCPConfigExportFileName"];

                        WinWindow SavePCPGroupConfigGrid = new WinWindow();
                        SavePCPGroupConfigGrid.SearchProperties.Add(new PropertyExpression(WinWindow.PropertyNames.Name, "Save PCP Well Group Configuration", PropertyExpressionOperator.Contains));
                        SavePCPGroupConfigGrid.SearchProperties[WinWindow.PropertyNames.ClassName] = "#32770";
                        SavePCPGroupConfigGrid.WindowTitles.Add((new PropertyExpression(WinWindow.PropertyNames.Name, "Save PCP Well Group Configuration", PropertyExpressionOperator.Contains).ToString()));

                        WinWindow ItemWindowDialog = new WinWindow(SavePCPGroupConfigGrid);
                        ItemWindowDialog.SearchProperties[WinWindow.PropertyNames.ClassName] = "ToolbarWindow32";
                        //ItemWindowDialog.SearchProperties[WinWindow.PropertyNames.Instance] = "4";
                        ItemWindowDialog.WindowTitles.Add((new PropertyExpression(WinWindow.PropertyNames.Name, "Save PCP Well Group Configuration", PropertyExpressionOperator.Contains).ToString()));

                        WinToolBar LocationBar = new WinToolBar(ItemWindowDialog);
                        LocationBar.WindowTitles.Add((new PropertyExpression(WinWindow.PropertyNames.Name, "Save PCP Well Group Configuration", PropertyExpressionOperator.Contains).ToString()));

                        WinButton PreviousLocation = new WinButton(LocationBar);
                        PreviousLocation.SearchProperties[WinButton.PropertyNames.Name] = "Previous Locations";
                        PreviousLocation.WindowTitles.Add((new PropertyExpression(WinWindow.PropertyNames.Name, "Save PCP Well Group Configuration", PropertyExpressionOperator.Contains).ToString()));

                        Mouse.Click(PreviousLocation);
                        Trace.WriteLine("Clicked Previous Location on Save Dialog ");

                        WinWindow ItemWin1 = new WinWindow(SavePCPGroupConfigGrid);
                        ItemWin1.SearchProperties.Add(WinWindow.PropertyNames.ControlId, "41477");
                        ItemWin1.WindowTitles.Add((new PropertyExpression(WinWindow.PropertyNames.Name, "Save PCP Well Group Configuration", PropertyExpressionOperator.Contains).ToString()));

                        WinEdit AddressEdit = new WinEdit(ItemWin1);
                        AddressEdit.SearchProperties.Add(WinEdit.PropertyNames.Name, "Address");
                        AddressEdit.WindowTitles.Add((new PropertyExpression(WinWindow.PropertyNames.Name, "Save PCP Well Group Configuration", PropertyExpressionOperator.Contains).ToString()));

                        AddressEdit.Text = PCPGroupConfigGridExportLocation;
                        Trace.WriteLine("Set export ouput path to " + PCPGroupConfigGridExportLocation);

                        //Keyboard.SendKeys(BeamConfigExportLocation);
                        Keyboard.SendKeys("{ENTER}");
                        Trace.WriteLine("Set ENTER key");

                        WinPane DPane = new WinPane(SavePCPGroupConfigGrid);
                        DPane.SearchProperties[WinControl.PropertyNames.Name] = "Details Pane";
                        DPane.WindowTitles.Add((new PropertyExpression(WinWindow.PropertyNames.Name, "Save PCP Well Group Configuration", PropertyExpressionOperator.Contains).ToString()));

                        WinComboBox FileName = new WinComboBox(DPane);
                        FileName.SearchConfigurations.Add(SearchConfiguration.AlwaysSearch);
                        FileName.SearchProperties.Add(WinComboBox.PropertyNames.Name, "File name:");
                        FileName.WindowTitles.Add((new PropertyExpression(WinWindow.PropertyNames.Name, "Save PCP Well Group Configuration", PropertyExpressionOperator.Contains).ToString()));

                        FileName.EditableItem = PCPGroupConfigGridExportFileName + WhenExported;
                        Trace.WriteLine("Set FileName of export file to " + PCPGroupConfigGridExportFileName + WhenExported);
                        WinButton SaveExport = new WinButton(SavePCPGroupConfigGrid);
                        SaveExport.SearchConfigurations.Add(SearchConfiguration.AlwaysSearch);
                        SaveExport.SearchProperties.Add(WinButton.PropertyNames.Name, "Save");
                        SaveExport.WindowTitles.Add((new PropertyExpression(WinWindow.PropertyNames.Name, "Save PCP Well Group Configuration", PropertyExpressionOperator.Contains).ToString()));

                        Mouse.Click(SaveExport);
                        Trace.WriteLine("Save Export button clicked");
                        Fileoutput = (PCPGroupConfigGridExportLocation + PCPGroupConfigGridExportFileName + WhenExported + ".txt");
                        CheckIfExportExists(Fileoutput);
                        break;
                    }
                //PCPGroupConfigGrid
            }

            return Fileoutput;
        }