public void CustomerRegistration() { Driver.Url = "http://localhost/litecart/en/"; Driver.FindElement(By.XPath("//a[contains(text(),'New customers click here')]")).Click(); Driver.FindElement(By.XPath("//input[@name='firstname']")).SendKeys("FirstName"); Driver.FindElement(By.XPath("//input[@name='lastname']")).SendKeys("LastName"); Driver.FindElement(By.XPath("//input[@name='address1']")).SendKeys("Address1"); Driver.FindElement(By.XPath("//input[@name='postcode']")).SendKeys("M5P 2N7"); Driver.FindElement(By.XPath("//input[@name='city']")).SendKeys("NY"); new SelectElement(Driver.FindElement(By.XPath("//select[@name='country_code']"))).SelectByText("Canada"); JsExecutor.ExecuteScript("arguments[0].selectedIndex = 2; arguments[0].dispatchEvent(new Event('change'))", Driver.FindElement(By.XPath("//select[@name='zone_code']"))); var email = (Int32)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds + "@email.com"; Driver.FindElement(By.XPath("//input[@name='email']")).SendKeys(email); Driver.FindElement(By.XPath("//input[@name='phone']")).SendKeys("111-11-11"); Driver.FindElement(By.XPath("//input[@name='password']")).SendKeys("password"); Driver.FindElement(By.XPath("//input[@name='confirmed_password']")).SendKeys("password"); Driver.FindElement(By.XPath("//button[@name='create_account']")).Click(); Driver.FindElement(By.XPath("//a[contains(text(),'Logout')]")).Click(); Driver.FindElement(By.XPath("//input[@name='email']")).SendKeys(email); Driver.FindElement(By.XPath("//input[@name='password']")).SendKeys("password"); Driver.FindElement(By.XPath("//button[@name='login']")).Click(); }
private void AddMultipleChoices() { SelectElement select = new SelectElement(this.Driver.FindElement(By.Id("field-type-selector"))); select.SelectByText("Multiple choice"); this.Driver.FindElement(By.Id("add-field")).Click(); IReadOnlyList <IWebElement> inputs = GetFieldEntries("Multiple choice");//this.Driver.FindElements(By.ClassName("input-field")); for (int i = 0; i < inputs.Count - 1; i++) { //1st -- name --has 3 entries (eng, french,spanish) if (i == 0) { inputs[i].SendKeys(MetadataTestValues.FieldName + "dd"); //name - in english JsExecutor.ExecuteScript("$(arguments[0]).change()", inputs[i]); } else if (i == 3) { // //2nd options inputs[i].SendKeys(MetadataTestValues.FieldOptions); //options in english JsExecutor.ExecuteScript("$(arguments[0]).change()", inputs[i]); } } checkRequiredCheckbox(true); }
/// <summary> /// A condition that waits until the qooxdoo application in the browser is /// ready (<code>qx.core.Init.getApplication()</code> returns anything truthy). /// </summary> public Func <IWebDriver, bool> QxAppIsReady() { return(driver => { object result = null; #if !DEBUGJS string script = JavaScript.Instance.GetValue("isApplicationReady"); try { result = JsExecutor.ExecuteScript(script); } catch (WebDriverException) { } #else try { result = JsRunner.RunScript("isApplicationReady"); } catch (WebDriverException) { } #endif var isReady = result != null && (bool)result; return isReady; }); }
/// <summary> /// Uses qooxdoo's localization support to get a specific locale's translation for a string /// </summary> public virtual string GetTranslation(string @string, string locale) { string js = string.Format("return qx.locale.Manager.getInstance().translate('{0}', [], '{1}').toString();", @string, locale); return((string)JsExecutor.ExecuteScript(js, @string)); }
private int GetNewlyAddedMetadataId() { var contextName = Driver.FindElement(By.CssSelector("div.form-builder")).GetAttribute("id"); int id = int.Parse(JsExecutor.ExecuteScript(string.Format("return {0}.Id();", contextName)).ToString()); return(id); }
public void Select() { if (!IsSelected) { JsExecutor.ExecuteScript("arguments[0].scrollIntoView();", Label.WebElement); Label.Click(); } }
public void ClearStorage() { LoggerSelenium.LogStart(System.Reflection.MethodBase.GetCurrentMethod().Name); JsExecutor.ClearSessionStorage(); Wait.FromSeconds(1); LoggerSelenium.LogEnd(System.Reflection.MethodBase.GetCurrentMethod().Name); }
private void checkRequiredCheckbox(bool req) { IWebElement chkReq = this.Driver.FindElement(By.ClassName("field-is-required")); if (req == true) { JsExecutor.ExecuteScript("arguments[0].click();", chkReq); } }
public void SelectOptions(List <string> options) { Expand(); foreach (var option in options) { GetFirstByText(option).Select(); } JsExecutor.ExecuteScript("arguments[0].scrollIntoView();", WebElement); Close(); }
public static void ForDocumentLoaded() { LoggerSelenium.LogStart(System.Reflection.MethodBase.GetCurrentMethod().Name); var wait = SetWaitTime(DriverConsts.ThreeMinInMilliseconds); wait.Until(d => JsExecutor.DocumentComplete()); LoggerSelenium.LogEnd(System.Reflection.MethodBase.GetCurrentMethod().Name); }
private void FillBasicMetadataSet() { WebDriverWait webDriver = new WebDriverWait(Driver, TimeSpan.FromSeconds(15)); webDriver.Until(ExpectedConditions.VisibilityOfAllElementsLocatedBy(By.Id("Name"))); this.Driver.FindElement(By.Id("Name")).SendKeys(MetadataTestValues.MetadatasetName + MetadataTestValues.Rnd.Next(1, 100)); webDriver.Until(ExpectedConditions.VisibilityOfAllElementsLocatedBy(By.Id("Description"))); IWebElement description = this.Driver.FindElement(By.Id("Description"));//.SendKeys(MetadataTestValues.MetadatasetDescription); description.SendKeys(MetadataTestValues.MetadatasetDescription); JsExecutor.ExecuteScript("$(arguments[0]).change()", description); }
public void IsLoginPageDisplayed() { Thread.Sleep(2500); var title = JsExecutor.Execute("return document.title"); if (title == "Login to Timely") { if (ElementHelper.ValidateElement(_userNameInput, _userNameInput.GetAttribute("Name")) && ElementHelper.ValidateElement(_pwdInput, _pwdInput.GetAttribute("Name")) && ElementHelper.ValidateElement(_loginButton, _loginButton.GetAttribute("Name"))) { return; } } throw new Exception("Login page was not displayed"); }
internal void LoginSucess() { //ExcelSheetReader // ExcelLibHelpers.PopulateInCollection(@"C:\Users\Owner\source\repos\Firstautomation\Firstautomation\TestData\TestData.xls","Mysheet"); // firstname.SendKeys(ExcelLibHelpers.ReadData(2, "Fname")); //JavaScriEtExecutor String usernameJS = "document.getElementById('UserName').value='hari'"; JsExecutor.Script(driver, usernameJS); String password = "******"; JsExecutor.Script(driver, password); //firstname.SendKeys("hari"); // password.SendKeys("123123"); login.Click(); }
public void AdminMenu() { Driver.Url = "http://localhost/litecart/admin/"; Driver.FindElement(By.Name("username")).SendKeys("admin"); Driver.FindElement(By.Name("password")).SendKeys("admin"); Driver.FindElement(By.Name("login")).Click(); var menuItemsCount = (Int64)JsExecutor.ExecuteScript("return $('[id=\"app-\"] .icon-wrapper').length"); for (var m = 0; m < menuItemsCount; m++) { ((IWebElement)JsExecutor.ExecuteScript("return $('[id=\"app-\"] .icon-wrapper')[" + m + "]")).Click(); Assert.True(Driver.FindElement(By.TagName("h1")).Displayed); var submenuItemsCount = (Int64)JsExecutor.ExecuteScript("return $('[id=\"app-\"] ul li').length"); for (var s = 0; s < submenuItemsCount; s++) { ((IWebElement)JsExecutor.ExecuteScript("return $('[id=\"app-\"] ul li')[" + s + "]")).Click(); Assert.True(Driver.FindElement(By.TagName("h1")).Displayed); } } }
public static void WaitForPageToLoad(string titleOfExpectedPage = "default") { using (var s = new StopwatchHelper()) { while (s.ElapsedMilliseconds <= (TimeSpan.FromMinutes(6).TotalMilliseconds)) { var title = JsExecutor.Execute("return document.title"); var readyState = JsExecutor.Execute("return document.readyState"); if (!(title.Contains(titleOfExpectedPage))) { Thread.Sleep(5000); } if (readyState != "complete") { Thread.Sleep(5000); } else if (readyState == "complete") { Thread.Sleep(3000); break; } } } }
/// <summary> /// Sleep and flush /// </summary> /// <param name="milliseconds">The number milliseconds to sleep before flushing.</param> public void Flush(int milliseconds = 500) { System.Threading.Thread.Sleep(milliseconds); JsExecutor.ExecuteScript("qx.ui.core.queue.Manager.flush();"); }
/// <summary> /// Executes JavaScript in the context of the currently selected frame or window. /// </summary> /// <param name="script">The JavaScript code to execute.</param> /// <param name="args">The arguments to the script.</param> /// <returns>The value returned by the script.</returns> /// <remarks> /// <para> /// The <see cref="IJavaScriptExecutor.ExecuteScript(string, object[])" />method executes JavaScript in the context of /// the currently selected frame or window. This means that "document" will refer /// to the current document. If the script has a return value, then the following /// steps will be taken: /// </para> /// <para> /// <list type="bullet"> /// <item> /// <description>For an HTML element, this method returns a <see cref="IWebElement" /></description> /// </item> /// <item> /// <description>For a number, a <see cref="long" /> is returned</description> /// </item> /// <item> /// <description>For a boolean, a <see cref="bool" /> is returned</description> /// </item> /// <item> /// <description>For all other cases a <see cref="string" /> is returned.</description> /// </item> /// <item> /// <description>For an array, we check the first element, and attempt to return a List of that type, /// following the rules above. Nested lists are not supported.</description> /// </item> /// <item> /// <description>If the value is null or there is no return value, /// <see langword="null" /> is returned.</description> /// </item> /// </list> /// </para> /// <para> /// Arguments must be a number (which will be converted to a <see cref="long" />), /// a <see cref="bool" />, a <see cref="string" /> or a <see cref="IWebElement" />. /// An exception will be thrown if the arguments do not meet these criteria. /// The arguments will be made available to the JavaScript via the "arguments" magic /// variable, as if the function were called via "Function.apply" /// </para> /// </remarks> public object ExecuteScript(string script, params object[] args) { return(JsExecutor.ExecuteScript(script, args)); }
public void CanEditMetadataField() { //create metadataset with 2 field 9Short text and checkboxes to be edit this.Driver.Navigate().GoToUrl(ManagerUrl + "/metadata"); this.Driver.FindElement(By.LinkText("Add new")).Click(); this.FillBasicMetadataSet(); this.AddMetadataFields(); clickSave(); int id = GetNewlyAddedMetadataId(); string description = GetTextFieldValue(MetadataTestValues.PathToDescription); this.Driver.Navigate().GoToUrl(ManagerUrl + "/metadata"); //Assert.AreEqual(FindTestValue(id.ToString()), id.ToString()); Assert.AreEqual(MetadataTestValues.MetadatasetDescription, description); //validate there are 2 fields added //Assert.AreEqual(2, GetNewlyAddedMetadaSet().Fields.Count); //// this.Driver.Navigate().GoToUrl(ManagerUrl + "/metadata/edit/" + id); //remove checkbox var allElementTypes = GetFieldElements(); foreach (IWebElement e in allElementTypes) { if (e.FindElement(By.ClassName("title")).Text.Equals("Checkboxes")) { IWebElement btnRemove = e.FindElement(By.ClassName("glyphicon-remove")); JsExecutor.ExecuteScript("arguments[0].focus();", btnRemove); btnRemove.Click(); } } //checkbox should be gone allElementTypes = GetFieldElements(); Assert.AreEqual(1, allElementTypes.Count); //should be only 1 left //and it should be Short text string eleTitle = ""; foreach (IWebElement e in allElementTypes) { eleTitle = e.FindElement(By.ClassName("title")).Text; } Assert.AreEqual("Short text", eleTitle); //add paragraph AddParagraph(); //add checkbox AddCheckboxes(); clickSave(); allElementTypes = GetFieldElements(); Assert.AreEqual(3, allElementTypes.Count); }
public void CanReorderMetadatasetFields() { this.Driver.Navigate().GoToUrl(ManagerUrl + "/metadata"); this.Driver.FindElement(By.LinkText("Add new")).Click(); this.FillBasicMetadataSet(); this.AddAllMetadataFields(); clickSave(); //validate creation of the metadaset is successfull int id = GetNewlyAddedMetadataId(); string description = GetTextFieldValue(MetadataTestValues.PathToDescription); this.Driver.Navigate().GoToUrl(ManagerUrl + "/metadata"); //Assert.AreEqual(FindTestValue(id.ToString()), id.ToString()); Assert.AreEqual(MetadataTestValues.MetadatasetDescription, description); //validate there are 8 fields added // Assert.AreEqual(8, GetNewlyAddedMetadaSet().Fields.Count); //try re order of the element this.Driver.Navigate().GoToUrl(ManagerUrl + "/metadata/edit/" + id); //reorder the elements IReadOnlyList <IWebElement> allElements = GetFieldElements(); //swap Checkboxes and paragraph....move paragraph "up"paragraph will be 2nd from top foreach (var e in allElements) { if (e.FindElement(By.ClassName("title")).Text.Equals("Paragraph")) { IWebElement btnUp = e.FindElement(By.ClassName("glyphicon-arrow-up")); JsExecutor.ExecuteScript("arguments[0].focus();", btnUp); btnUp.Click(); break; } } Thread.Sleep(500); allElements = GetFieldElements(); //move attachment field "down" -- attachment should be last foreach (var e in allElements) { if (e.FindElement(By.ClassName("title")).Text.Equals("Attachment Field")) { IWebElement btnDown = e.FindElement(By.ClassName("glyphicon-arrow-down")); JsExecutor.ExecuteScript("arguments[0].focus();", btnDown); btnDown.Click(); break; } } allElements = GetFieldElements(); //assert --paragraph should be in 2nd and attachment should be last bool porder = allElements[1].FindElement(By.ClassName("title")).Text.Equals("Paragraph"); Assert.AreEqual(true, porder); porder = allElements.Last().FindElement(By.ClassName("title")).Text.Equals("Attachment Field"); Assert.AreEqual(true, porder); }
private void SetText(string text) { var str = "value='" + text + "'"; JsExecutor.ExecuteScript("arguments[0]." + str + ";", WebElement); }