Exemplo n.º 1
0
        /// <summary>
        /// Wait for an element to have a value in its InnerHtml
        ///
        /// Returns null if the element was not found
        /// </summary>
        /// <param name="watinIe"></param>
        /// <param name="elementName"></param>
        /// <param name="maxWait"></param>
        /// <returns></returns>
        public static WatiN_IE wait_For_Element_InnerHtml(this WatiN_IE watinIe, string elementName, int maxWait = 1000)
        {
            var splitWait = maxWait / 10;

            for (var i = 0; i < 10; i++)
            {
                var element = watinIe.element(elementName);
                if (element.notNull() && element.innerHtml().valid())
                {
                    return(watinIe);
                }
                splitWait.sleep();
            }
            "[WatiN_IE][wait_For_Url]  did not found valid innerHtml inside element '{0}' after {1} miliseconds. ".error(elementName, maxWait);
            return(null);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Wait for an element innerText to match the <paramref name="expectedValue"/> value
        ///
        /// Note: the comparison is not CaseSensitive and trim is applied to the search values
        ///
        /// Returns null if the element was not found or if it was found but the values didn't match
        /// </summary>
        /// <param name="watinIe"></param>
        /// <param name="elementName"></param>
        /// /// <param name="expectedValue"></param>
        /// <param name="maxWait"></param>
        /// <returns></returns>
        public static WatiN_IE wait_For_Element_InnerText(this WatiN_IE watinIe, string elementName, string expectedValue, int maxWait = 1000)
        {
            if (watinIe.isNull() || elementName.notValid())
            {
                return(watinIe);
            }
            var splitWait = maxWait / 10;

            expectedValue = expectedValue.notNull() ? expectedValue.lower().trim() : "";
            for (var i = 0; i < 10; i++)
            {
                var element = watinIe.element(elementName);
                if (element.notNull() && element.innerText().valid() && element.innerText().lower().trim() == expectedValue)
                {
                    return(watinIe);
                }
                splitWait.sleep();
            }
            "[WatiN_IE][wait_For_Url] did not found the expected '{0}' value inside the element '{1}' after {2} miliseconds. ".error(expectedValue, elementName, maxWait);
            return(null);
        }
Exemplo n.º 3
0
        public void Workflow_Install_And_Delete_Library()
        {
            Action <string, string> waitForElementText =
                (elementId, text) => {
                "waiting for '{0}' in element '{1}'".info(text, elementId);
                for (int i = 0; i < 5; i++)
                {
                    if (ie.element(elementId).text().contains(text))
                    {
                        return;
                    }
                    else
                    {
                        elementId.sleep(1000, true);
                    }
                }
                "could not find '{0}' in element '{1}'".error(text, elementId);
            };

            Action <string, string> login =
                (username, password) => {
                ie.open(server.append("login"));
                ie.url().assert_Contains("Login");
                ie.field("username").value(username);
                ie.field("password").value(password);
                ie.button("login").click();
            };
            Action logout     = () => ie.open(server.append("logout"));
            Action teamMentor = () => {
                ie.open(server.append("teamMentor"));
                ie.waitForLink("About");
            };
            Action admin = () => ie.open(server.append("admin"));

            Action login_AsAdmin = () => {
                if (ie.hasLink("Control Panel").isFalse())
                {
                    logout();
                    login(admin_Name, admin_Pwd);
                    ie.waitForLink("About", 250, 20).assert_Not_Null();
                    ie.waitForLink("Logout").assert_Not_Null();
                    //teamMentor();
                }
            };
            Action installTestLibrary =
                () => {
                admin();
                ie.waitForComplete();
                ie.waitForLink("advanced admin tools").click().assert_Not_Null();
                ie.waitForLink("install/upload libraries").click().assert_Not_Null();;
                ie.waitForLink("OWASP").click().assert_Not_Null();
                ie.button("Install").click().assert_Not_Null();
                waitForElementText("installMessage", "> Library installed was successful");
                ie.link("Admin Tasks").click().assert_Not_Null();
                waitForElementText("jsonResult", "...Via Proxy");
                ie.link("Reload Server Cache").click().assert_Not_Null();
                waitForElementText("jsonResult", "In the Folder");
                ie.link("Open Main Page").click().assert_Not_Null();;
                //ie.waitForLink("Reload Server Cache").click();
            };
            Action deleteTestLibrary =
                () => {
                ie.waitForLink("OWASP").notNull().assert_True();

                var librariesBeforeRemove = ie.getJsVariable("window.TM.WebServices.Data.AllLibraries.length").cast <int>();

                ie.eval("window.TM.Gui.LibraryTree.remove_Library_from_Database('4738d445-bc9b-456c-8b35-a35057596c16')");

                for (var i = 0; i < 5; i++)
                {
                    if (ie.getJsVariable("window.TM.WebServices.Data.AllLibraries.length").cast <int>() < librariesBeforeRemove)
                    {
                        return;
                    }
                    else
                    {
                        100.sleep();
                    }
                }

                "Library was not deleted".assert_Fail();
            };

            teamMentor();
            login_AsAdmin();
            //ie.script_IE_WaitForClose();
            installTestLibrary();
            deleteTestLibrary();

            ie.hasLink("OWASP").assert_False();
        }
        [Test] public void element__tagName()
        {
            var element_P     = ie.element("p");
            var element_Body  = ie.element("body");
            var element_Head  = ie.element("head");
            var element_B     = ie.element("b");
            var element_I     = ie.element("i");
            var element_ABC   = ie.element("abc");
            var element_Null  = ie.element(null);
            var element_Empty = ie.element("");

            element_P.assert_Not_Null().assert_Are_Equal((element) => element.tagName(), "P");
            element_Body.assert_Not_Null().assert_Are_Equal((element) => element.tagName(), "BODY");
            element_Head.assert_Not_Null().assert_Are_Equal((element) => element.tagName(), "HEAD");
            element_B.assert_Not_Null().assert_Are_Equal((element) => element.tagName(), "B");
            element_I.assert_Not_Null().assert_Are_Equal((element) => element.tagName(), "I");
            element_ABC.assert_Is_Null();
            element_Null.assert_Is_Null();
            element_Empty.assert_Is_Null();

            element_Body.assert_Is_Equal_To(ie.elements("body").first());
            element_Body.assert_Is_Equal_To(ie.element("Body"));
            element_Body.assert_Is_Equal_To(ie.element("BODY"));
            element_Body.assert_Is_Equal_To(ie.element("BODY   "));
            element_Body.assert_Is_Equal_To(ie.element("   BODY   "));
        }