[Test] public void add_Link() { var href = "href".add_5_RandomLetters(); var id = "id".add_5_RandomLetters(); var innerText = "innerText".add_5_RandomLetters(); ie.links().assert_Is_Empty(); ie.body().add_Link(id, href, innerText); ie.links().assert_Not_Empty().assert_Size_Is(1); var link = ie.links().first(); link.assert_Not_Null() .assert_Are_Equal(link.id, id) .assert_Contains(link.href, href) .assert_Are_Equal(link.innerText, innerText); assert_Are_Equal(link, ie.links().first()); assert_Are_Equal(link, ie.elements("a").first()); assert_Are_Equal(link, ie.link(id)); assert_Are_Equal(link, ie.link(innerText)); var innerText2 = "innerText 2".add_5_RandomLetters(); ie.body().add_Link(innerText2); var link_NoId = ie.links().second(); link_NoId.assert_Not_Null() .assert_Contains(link_NoId.id, "Link_Id_") .assert_Contains(link_NoId.href, "#") .assert_Are_Equal(link_NoId.innerText, innerText2); }
/// <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); }
private string Exploit_Stage_1_Stored_XSS(string fieldToInsertPayload) { setup(); var payload = "<a href=\"\" onMouseOver=\"javascript:alert('xss')\">Over me to see xss</a>"; webGoat.openMainPage(); //ie.disableFlashing(); ie.link("Cross-Site Scripting (XSS)").flash().click(); ie.link("LAB: Cross Site Scripting").flash().click(); ie.link("Stage 1: Stored XSS").flash(); ie.field("password").flash().value("larry"); ie.button("Login").flash().click(); ie.selectLists()[1].options()[0].select().flash(); ie.button("ViewProfile").flash().click(); ie.button("EditProfile").flash().click(); ie.field(fieldToInsertPayload).value(payload).flash(); ie.button("UpdateProfile").flash().click(); Assert.That(ie.html().contains("onmouseover=\"javascript:alert('xss')\""), "Payload was not inserted into page"); return("ok"); }
/// <summary> /// https://github.com/TeamMentor/Master/issues/829 /// </summary> [Test] public void Issue_829__Get_rid_of_Control_Panel() { ieTeamMentor.open_Page_Login_if_Needed("/TeamMentor"); // location 1) check link on home page ie.assert_Uri_Is(siteUri.mapPath("/TeamMentor")) // confirm that we are on the main TM page .wait_For_Link("Logout") .assert_Has_Link("Logout") .assert_Has_Link("Tbot") .assert_Doesnt_Have_Link("Control Panel"); // (Issue_830) for the 3.5 release this link should not be there // location 2) check link on Tbot page ie.link("TBot").click(); ie.assert_Uri_Is(siteUri.mapPath("/rest/tbot/run/Commands")) .assert_Has_Link("Restart Server") .assert_Has_Link("TBot Monitor") .assert_Doesnt_Have_Link("Control Panel (legacy)"); // location 3)check for link on TBot Monitor ie.link("TBot Monitor").click(); ie.assert_Uri_Is(siteUri.mapPath("/Tbot_Monitor/monitor.htm#/monitor/activities")) .assert_Has_Link("TeamMentor Admin (TBot)") .assert_Doesnt_Have_Link("Control Panel (legacy)"); }
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 link() { ie.links().assert_Empty(); var id = "id".add_5_RandomLetters(); var innerText = "innerText".add_5_RandomLetters(); ie.body().add_Link(id, "href", innerText); ie.links().assert_Not_Empty() .assert_Size_Is(1) .first().assert_Not_Null() .assert_Are_Equal((link) => link.id(), id) .assert_Are_Equal((link) => link.innerText(), innerText); ie.link(id).assert_Not_Null(); ie.link(innerText).assert_Not_Null(); var firstLink = ie.links().first(); assert_Are_Equal(firstLink, ie.link(id)); assert_Are_Equal(firstLink, ie.link(innerText)); }