/// <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); }
/// <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); }
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 ")); }