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)); }
public override GenericFormPage OpenCreateRecordForm(string optionalNewButtonId = null) { RibbonBar.Click_New_Button(optionalNewButtonId); DriverHelpers.WaitForIFrameContent(this.PrimaryDriver, ConfigData.IFrameID, "lnkCancel"); return(new GenericFormPage(this, ListPageUrl)); }
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); }
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); }
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)); }
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); }
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); }
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; } }
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 { } }
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 { } }
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); }
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)); }
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); }
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); } } }