public API_HacmeBank adminSection() { var adminLink = "Admin Section"; if (ie.hasLink(adminLink)) { ie.click(adminLink); } else { "[API_HacmeBank][adminSection] could not find admin link: {0}".format(adminLink); } return(this); }
/// <summary> /// tries to find a link or button using the provided identified (<paramref name="linkOrButtonRef"/>) and click on it /// /// Returns the original watinIe object so that multiple clicks can be chained /// /// Returns null if the link or button was not found /// </summary> /// <param name="watinIe"></param> /// <param name="linkOrButtonRef"></param> /// <returns></returns> public static WatiN_IE click(this WatiN_IE watinIe, string linkOrButtonRef) { if (watinIe.isNull() || linkOrButtonRef.notValid()) { return(watinIe); } if (watinIe.hasLink(linkOrButtonRef)) { watinIe.link(linkOrButtonRef).click(); return(watinIe); } if (watinIe.hasButton(linkOrButtonRef)) { watinIe.button(linkOrButtonRef).click(); return(watinIe); } "[WatiN_IE][click] could not find link or button with reference: {0}".error(linkOrButtonRef); return(null); }
//Workflows [Test] public void Check_That_Links_With_NewLines_In_InnerText_Can_Still_Be_Found() { //fix and regression test for https://github.com/o2platform/FluentSharp/issues/3 var simpleText = "this is inside the link"; var linkText = simpleText.lineBeforeAndAfter(); assert_Size_Is(ie.links(), 0); ie.body().add_Link(linkText); assert_Size_Is(ie.links(), 1); var link = ie.link(simpleText); assert_Not_Null(link); assert_Are_Equal(link, ie.link(simpleText)); assert_Are_Equal(link, ie.link(linkText)); //a tipical example of this problem was with simple links with spaces (as shown in the example below) ie.body().add_Link(" Login "); assert_Size_Is(ie.links(), 2); assert_Not_Null(ie.link("Login")); assert_Not_Null(ie.link("login")); assert_Not_Null(ie.link("LOGIN")); assert_Not_Null(ie.link(" Login")); assert_Not_Null(ie.link(" LOGIN")); assert_Is_True(ie.hasLink("Login")); assert_Is_True(ie.hasLink("login")); assert_Is_True(ie.hasLink("login")); assert_Is_True(ie.hasLink(" Login")); assert_Is_True(ie.hasLink(" LOGIN")); assert_Is_True(ie.hasLink(" Login ")); }
public static WatiN_IE assert_Doesnt_Have_Link(this WatiN_IE watinIe, string linkId, string message = Extra_NUnit_Messages.ASSERT_DOESNT_HAVE_LINK) { watinIe.hasLink(linkId).assert_False(message.format(watinIe.url(), linkId)); return(watinIe); }
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(); }