示例#1
0
        public GenericFormPage Edit_FirstRow(bool isTelerikGrid = true)
        {
            if (isTelerikGrid)
            {
                //IFrameDriver.FindElements(By.XPath("//*[@class='RadGrid RadGrid_Office2007 MWGrid' and @class='dact']"));
                string gridID = (string)this.IFrameDriver.RunJavascript("return CONST_BrixListPage.ID.MWGrid;");

                var gridDiv = this.IFrameDriver.FindElement(By.Id(gridID));

                var gridTableContainingDiv = IFrameDriver.FindElement(By.Id(gridID + "_GridData"));

                var gridTable = gridTableContainingDiv.FindElement(By.Id(gridID + "_GridData")).FindElement(By.TagName("table"));

                string firstRowId  = gridTable.GetAttribute("id") + "__0";//"ctl00_C1_MWGrid_ctl00";//
                var    firstRow_tr = gridTable.FindElement(By.Id(firstRowId));

                firstRow_tr.Click();

                RibbonBar.Click_Edit_Button();

                DriverHelpers.WaitForIFrameContent(this.PrimaryDriver, ConfigData.IFrameID, "lnkCancel");

                return(new GenericFormPage(this, ListPageUrl));
            }
            else
            {
                //var gridDiv = IFrameDriver.FindElement(By.Id("RadGrid RadGrid_Office2007 MWGrid"));
            }

            DriverHelpers.WaitForIFrameContent(this.PrimaryDriver, ConfigData.IFrameID, "lnkCancel");

            return(new GenericFormPage(this, ListPageUrl));
        }
示例#2
0
        public override GenericFormPage OpenCreateRecordForm(string optionalNewButtonId = null)
        {
            RibbonBar.Click_New_Button(optionalNewButtonId);

            DriverHelpers.WaitForIFrameContent(this.PrimaryDriver, ConfigData.IFrameID, "lnkCancel");

            return(new GenericFormPage(this, ListPageUrl));
        }
示例#3
0
        public static IWebElement Tree_SubFolder_Toggle(IWebDriver driver, IWebElement parentFolder, string folderName, bool isExpand)
        {
            // var treeDiv_treeWrapper = driver.FindElement(By.Id("treeWrapper"));

            //http://stackoverflow.com/questions/27496980/xpath-to-find-the-first-child-if-a-sibling-contains-certain-text
            //---- //ul[contains(li,'Sample')]/li[1]
            //http://stackoverflow.com/questions/30407106/getting-next-sibling-element-using-xpath-and-selenium-for-java
            //string xPathForProjName = string.Format("./ul/li/a[contains(nobr,'{0}')]/a[1]", projectName);


            string xPathForProjName = string.Format("./ul/li/a/nobr[text()='{0}']", folderName);
            var    nobr_Tag         = parentFolder.FindElement(By.XPath(xPathForProjName));

            var parent = nobr_Tag.FindElement(By.XPath(".."));

            //https://developer.mozilla.org/en-US/docs/Web/XPath/Axes
            IWebElement treeExpanderBtn = parent.FindElement(By.XPath("preceding-sibling::*"));

            var mainTreeNode_li = treeExpanderBtn.FindElement(By.XPath(".."));

            string classStr = mainTreeNode_li.GetAttribute("class");

            if (isExpand)
            {
                //jstree-closed   if this class is there then it is collapsed
                if (classStr.Contains("jstree-closed"))
                {
                    treeExpanderBtn.Click();

                    classStr = mainTreeNode_li.GetAttribute("class");
                    if (classStr.Contains("jstree-closed"))
                    {
                        treeExpanderBtn.Click();
                    }
                    DriverHelpers.WaitForSometime(driver);
                }
            }
            else
            {
                //jstree-open   if this class is there then it is expanded hence we must collapse
                if (classStr.Contains("jstree-open"))
                {
                    treeExpanderBtn.Click();
                    DriverHelpers.WaitForSometime(driver);
                }
            }

            ////////--now select the module

            //var xPathForModule = string.Format("./ul/li/a/nobr[text()='{0}']", directModuleName);
            //var a_tag_module_text = mainTreeNode_li.FindElement(By.XPath(xPathForModule)).FindElement(By.XPath(".."));

            //a_tag_module_text.Click();

            return(mainTreeNode_li);
        }
示例#4
0
        public static IWebElement Tree_SelectLeafUnderFolder(IWebDriver driver, IWebElement parentTreeNode, string nodeName)
        {
            var xPathForModule = string.Format("./ul/li/a/nobr[text()='{0}']", nodeName);
            var node           = parentTreeNode.FindElement(By.XPath(xPathForModule)).FindElement(By.XPath(".."));

            node.Click();

            DriverHelpers.WaitForSometime(driver);

            return(node);
        }
示例#5
0
        public GenericListPage OpenEnterprise_Form_ByDisplayName(string formDisplayName)
        {
            //base.GoTo_URL(UrlConstants.SiteUrl + string.Format(URL_TEMPLATE_ProjectDetails, pid));
            base.MainMenu_Select(EnumMainMenuItem.Home);

            TreePanelHelper.Tree_SelectDirectNode(this.PrimaryDriver, formDisplayName);

            DriverHelpers.WaitForIFrameContent(this.PrimaryDriver, ConfigData.IFrameID, "MainToolBar_upToolbar");

            return(new GenericListPage(this, this.PrimaryDriver.Url));
        }
示例#6
0
        public GenericFormPage Save_DynamicGridData()
        {
            var ele_popup_EditDynaGrid = this.IFrameDriver.FindElement(By.Id($"{DynamicGridName}_EditTemplate")); //format : TableDummy_EditTemplate

            var btnSave = ele_popup_EditDynaGrid.FindElement(By.CssSelector("input[type='submit'][value='Save']"));

            btnSave.Click();

            DriverHelpers.WaitForSometime(this.IFrameDriver, 2);

            return(this.ParentFormReference);
        }
示例#7
0
        public static IWebElement Tree_SelectDirectNode(IWebDriver driver, string nodeName)
        {
            var treeDiv_treeWrapper = driver.FindElement(By.Id("treeWrapper"));

            string xPathForProjName = string.Format("./ul/li/a/nobr[text()='{0}']", nodeName);
            var    nobr_Tag         = treeDiv_treeWrapper.FindElement(By.XPath(xPathForProjName));

            var li_node = nobr_Tag.FindElement(By.XPath(".."));

            li_node.Click();

            DriverHelpers.WaitForSometime(driver);

            return(li_node);
        }
示例#8
0
        public MasterworksScreen(string testID, string testSummary, BrowserType browserType = BrowserType.Chrome, bool isAutoLogin = false) : base(null)//parent object can be null in this call only
        {
            UrlConstants.SiteUrl = RuntimeAppConfig.Instance.URL;
            AurigoAppSettings.ConnectionStringSource = DBHelper.TryGetDatabaseConnectionString();

            base.TestID      = testID;
            base.TestSummary = testSummary;

            base.PrimaryDriver = DriverHelpers.CreateWindow(browserType);

            if (isAutoLogin && base.PrimaryDriver != null)
            {
                base.LoginInternal(RuntimeAppConfig.Instance.Username, RuntimeAppConfig.Instance.Password);
                _isAutoLoginDone = true;
            }
        }
示例#9
0
        public static void Execute(dynamic site, IWebDriver driver)
        {
            try
            {
                // Navigate to login page
                driver.Navigate().GoToUrl(site.Url + "pages/login.aspx");
                var webDriverWait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));
                webDriverWait.Until(ExpectedConditions.UrlMatches(site.Url + "pages/login.aspx"));
                webDriverWait.Until(d => ((IJavaScriptExecutor)d).ExecuteScript("return document.readyState").Equals("complete"));

                // check title
                Assert.AreEqual(site.Title, driver.Title);

                // TEST SUCCESSFUL LOGIN

                // click top sign in button
                var signinButtonLocator = By.XPath("//button[contains(@class, 'btn btn-accent exc-sign-in-btn')]");
                webDriverWait.Until(DriverHelpers.ElementIsClickable(signinButtonLocator));
                driver.FindElement(signinButtonLocator).Click();

                // wait for elements to become visible (there are 2 sets of 2 elements that share the same id, so wait for one of them to become visible)
                webDriverWait.Until(ExpectedConditions.ElementIsVisible(By.Id("Username")));
                webDriverWait.Until(ExpectedConditions.ElementIsVisible(By.Id("Password")));

                var usernameElements = driver.FindElements(By.Id("Username"));
                var passwordElements = driver.FindElements(By.Id("Password"));
                // enter username
                do
                {
                    usernameElements = driver.FindElements(By.Id("Username"));
                    passwordElements = driver.FindElements(By.Id("Password"));
                }while (usernameElements.Count < 2 && passwordElements.Count < 2);

                driver.FindElements(By.Id("Username"))[1].SendKeys(site.User);

                //enter password
                driver.FindElements(By.Id("Password"))[1].SendKeys(site.Password);

                //click sign in button depending on which one is available
                driver.FindElement(By.XPath("//button[contains(@class, 'btn btn btn-primary exc-corner-btn')]")).Click();
                webDriverWait.Until(ExpectedConditions.UrlMatches(site.Url + "MyAccount/MyBillUsage/pages/secure/MyBillUsage.aspx"));
                Assert.AreEqual(site.Url + "MyAccount/MyBillUsage/pages/secure/MyBillUsage.aspx", driver.Url);
            }
            catch {
            }
        }
示例#10
0
        public void LoginWithSuccess(IWebDriver driver, string userName, string password)
        {
            driver.Url = UrlConstants.LoginUrl;
            DriverHelpers.WaitForPageLoaded(driver);

            //driver.Navigate().GoToUrl(AurigoFramework.SuperHelperObject.MasterWorksURL);//.SwitchTo().DefaultContent();

            driver.FindElement(By.Id("txtUserID")).SendKeys(userName);

            driver.FindElement(By.Id("txtPassword")).SendKeys(password);

            driver.FindElement(By.Id("btnLogin")).Click();


            if (!driver.Url.StartsWith(UrlConstants.SuccessLoginURL))
            {
                throw new Exception("Login Failed");
            }
        }
        public static void Execute(dynamic site, IWebDriver driver)
        {
            //click search

            try
            {
                driver.Navigate().GoToUrl(site.Url + "MyAccount/MyService/pages/MoveService.aspx");

                var webDriverWait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));
                // find and click Account Lookup Tool link
                webDriverWait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//a[contains(text(), 'Account Lookup Tool')]")));
                driver.FindElement(By.XPath("//a[contains(text(), 'Account Lookup Tool')]")).Click();
                webDriverWait.Until(d => ((IJavaScriptExecutor)d).ExecuteScript("return document.readyState").Equals("complete"));

                //Wait until modal is visible
                webDriverWait.Until(ExpectedConditions.ElementIsVisible(By.Id("Ssn")));

                //enter ssn and phone number
                DriverHelpers.SendKeys(driver, By.Id("Ssn"), site.Ssn);

                DriverHelpers.SendKeys(driver, By.Id("PhoneNumber"), site.Phone);
                var searchButtonLocator = By.XPath("//button[contains(text(), 'Search')]");
                webDriverWait.Until(DriverHelpers.ElementIsClickable(searchButtonLocator));
                try
                {
                    driver.FindElement(searchButtonLocator).Click();
                    DriverHelpers.SendKeys(driver, By.Id("Ssn"), site.Ssn);
                    driver.FindElement(searchButtonLocator).Click();
                    // wait until account number is visible
                    webDriverWait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//a[contains(text(),'" + site.AccountNumber + "')]")));
                }
                catch
                {
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
            }
        }
示例#12
0
        public virtual TList SaveForm_Successfully(bool isStopOnVerificationException = true, string optionalButtonId = null)
        {
            if (isStopOnVerificationException && this.IsAnyVerificationBlockHavingException)
            {
                throw new AurigoTestException(this, EnumExceptionType.MethodCallAverted, "Save averted due to one or more verificaiton issues.");
            }

            string oldUrl = base.PrimaryDriver.Url;

            this.RibbonBar.Click_Save_Button(optionalButtonId);
            DriverHelpers.WaitForIFrameContent(base.PrimaryDriver, ConfigData.IFrameID, "lnkNew"); //means list page //C1_divRadGrid

            string newUrl = base.PrimaryDriver.Url;

            if (oldUrl == newUrl)
            {
                throw new AurigoTestException(this, EnumExceptionType.NoUrlChange, "Something went wrong. Page did not navigate correctly");
            }

            return(ListPageReference);
        }
示例#13
0
        public GenericViewPage View_FirstRow(bool isTelerikGrid = true)
        {
            if (isTelerikGrid)
            {
                string gridID = (string)this.IFrameDriver.RunJavascript("return CONST_BrixListPage.ID.MWGrid;");

                var gridDiv = this.IFrameDriver.FindElement(By.Id(gridID));

                var gridTableContainingDiv = IFrameDriver.FindElement(By.Id(gridID + "_GridData"));

                var gridTable = gridTableContainingDiv.FindElement(By.Id(gridID + "_GridData")).FindElement(By.TagName("table"));

                string firstRowId  = gridTable.GetAttribute("id") + "__0";//"ctl00_C1_MWGrid_ctl00";//
                var    firstRow_tr = gridTable.FindElement(By.Id(firstRowId));

                //firstRow_tr.Click();
                new Actions(this.IFrameDriver).DoubleClick(firstRow_tr).Build().Perform();
            }

            DriverHelpers.WaitForIFrameContent(this.PrimaryDriver, ConfigData.IFrameID, "lnkCancel");

            return(new GenericViewPage(this, ListPageUrl));
        }
示例#14
0
        public virtual TSelf SaveForm_ExpectValidationError(string optionalButtonId = null)
        {
            //TODO: check if this is required
            //if (isStopOnVerificationException && this.IsAnyVerificationBlockHavingException)
            //    throw new AurigoTestException(this, EnumExceptionType.MethodCallAverted, "Save averted due to one or more verificaiton issues.");

            string oldUrl = base.PrimaryDriver.Url;

            this.RibbonBar.Click_Save_Button(optionalButtonId);
            try
            {
                string linkFound = DriverHelpers.WaitForAnyOfTheIFrameContents(base.PrimaryDriver, ConfigData.IFrameID, new List <string> {
                    "lnkCancel", "lnkNew"
                }, 10);
                if (string.IsNullOrEmpty(linkFound) || linkFound == "lnkNew")
                {
                    throw new AurigoTestException(this, EnumExceptionType.UrlChanged, "Expecting error on save, but it got saved.");
                }
            }
            catch { }

            return(this as TSelf);
        }
示例#15
0
        public static void Tree_Folder_Toggle(IWebDriver driver, IWebElement folderEleToExpandOrCollapse, bool isExpand)
        {
            var parent = folderEleToExpandOrCollapse;

            //https://developer.mozilla.org/en-US/docs/Web/XPath/Axes
            IWebElement treeExpanderBtn = parent.FindElement(By.XPath("preceding-sibling::*"));

            var mainTreeNode_li = treeExpanderBtn.FindElement(By.XPath(".."));

            string classStr = mainTreeNode_li.GetAttribute("class");

            if (isExpand)
            {
                //jstree-closed   if this class is there then it is collapsed
                if (classStr.Contains("jstree-closed"))
                {
                    treeExpanderBtn.Click();

                    classStr = mainTreeNode_li.GetAttribute("class");
                    if (classStr.Contains("jstree-closed"))
                    {
                        treeExpanderBtn.Click();
                    }
                    DriverHelpers.WaitForSometime(driver);
                }
            }
            else
            {
                //jstree-open   if this class is there then it is expanded hence we must collapse
                if (classStr.Contains("jstree-open"))
                {
                    treeExpanderBtn.Click();
                    DriverHelpers.WaitForSometime(driver);
                }
            }
        }