Esempio n. 1
0
        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);
        }
Esempio n. 3
0
        /// <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;
            });
        }
Esempio n. 4
0
        /// <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();
     }
 }
Esempio n. 7
0
        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);
            }
        }
Esempio n. 9
0
 public void SelectOptions(List <string> options)
 {
     Expand();
     foreach (var option in options)
     {
         GetFirstByText(option).Select();
     }
     JsExecutor.ExecuteScript("arguments[0].scrollIntoView();", WebElement);
     Close();
 }
Esempio n. 10
0
        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);
        }
Esempio n. 12
0
        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");
        }
Esempio n. 13
0
        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();
        }
Esempio n. 14
0
        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);
                }
            }
        }
Esempio n. 15
0
 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;
             }
         }
     }
 }
Esempio n. 16
0
 /// <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();");
 }
Esempio n. 17
0
 /// <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);
        }
Esempio n. 20
0
        private void SetText(string text)
        {
            var str = "value='" + text + "'";

            JsExecutor.ExecuteScript("arguments[0]." + str + ";", WebElement);
        }