public void CheckRetry(HpgElement checkbox, int retryTimes = 3, int SecondsBetween = 1, bool assertion = true) { for (int i = 0; i < retryTimes; i++) { try { AutomationCore.base_tests.BaseTest.WriteReport("Checking box (#" + (i + 1).ToString() + ")"); checkbox.Element.Now(); checkbox.Element.Hover(); checkbox.Element.Check(); if (checkbox.Element.Selected) { break; } checkbox.Element.SendKeys(OpenQA.Selenium.Keys.Space); if (checkbox.Element.Selected) { break; } System.Threading.Thread.Sleep(SecondsBetween * 1000); } catch (Exception e) { AutomationCore.base_tests.BaseTest.WriteReport("Error checking box - " + e.Message); } } if (assertion) { HpgAssert.True(checkbox.Element.Selected, "Checkbox is checked"); } }
public void MySortBy(string columnName, string order = "ASCENDING") { SuperTest.WriteReport("Sorting by " + columnName + " " + order); HpgElement headerLink = new HpgElement(browser.FindId("myIdeasTable").FindLink(columnName)); HpgAssert.Exists(headerLink, "Verify header link exists"); headerLink.Click(); System.Threading.Thread.Sleep(20000); if (order.ToLower().Contains("desc")) { //Sort Descending while (!browser.Location.ToString().ToLower().Contains("desc")) { //Keep clicking until URL contains "desc" headerLink.Click(); System.Threading.Thread.Sleep(5000); } } else { //Sort Ascending while (browser.Location.ToString().ToLower().Contains("desc")) { //Keep clicking until URL does not contain "desc" headerLink.Click(); System.Threading.Thread.Sleep(5000); } } }
public string SelectFirstOptionOnDropDown(HpgElement dd) { dd.Click(); var options = (from o in dd.Element.FindAllXPath(".//Option") where !o.Text.Trim().Equals("") select o); dd.Element.SendKeys(options.First().Text.Trim()); options.First().Click(); browser.Select(options.First().Text.Trim()).From(dd.Element.Id); return(options.First().Text); }
public string SelectOptionOnDropDown(HpgElement dd, string option) { dd.Click(); HpgElement op = new HpgElement(dd.Element.FindXPath(".//Option[.='" + option + "']")); dd.Element.SendKeys(op.Text.Trim()); op.Click(); browser.Select(op.Text.Trim()).From(dd.Element.Id); return(op.Value); }
public void VerifyLinksArePresent(Dictionary <string, string> linksList) { List <HpgElement> links = GetAllLinks(); foreach (KeyValuePair <string, string> linkToTest in linksList) { HpgElement a = links.First(b => b.Text.Trim().Equals(linkToTest.Key)); HpgAssert.True(a.Element.Exists(), "Verify link '" + linkToTest.Key + "' is present"); HpgAssert.Contains(System.Web.HttpUtility.UrlDecode(a.Element["href"]), linkToTest.Value, "Verify link URL is correct"); } }
/// <summary> /// Verifies all attachments supplied in fileList dictionary parameter are present and href links are correct /// </summary> /// <param name="fileList">Dictionary containing linkname / filepath</param> public void VerifyAttachmentsArePresent(Dictionary <string, string> fileList) { List <HpgElement> attachments = GetAllAttachments(); foreach (KeyValuePair <string, string> fileToTest in fileList) { HpgElement a = attachments.First(b => b.Text.Trim().Equals(fileToTest.Key)); HpgAssert.True(a.Element.Exists(), "Verify attachment '" + fileToTest.Key + "' is present"); HpgAssert.Contains(System.Web.HttpUtility.UrlDecode(a.Element["href"]), fileToTest.Value.Split('\\').Last(), "Verify attachment file is correct"); } }
public FacilityStatusRow ParseFacilityStatusRow(HpgElement row) { return(new FacilityStatusRow() { ImplementedStatus = Enums.ImplementedStatusString[row.Element.FindXPath(".//td[1]").Text.Trim()], ChangeImplementation = new HpgElement(row.Element.FindXPath(".//td[1]")), COID = row.Element.FindXPath(".//td[2]").Text.Trim().Split('(', ')')[1], Facility = row.Element.FindXPath(".//td[2]").Text.Trim().Split(")".ToCharArray(), 2)[1].Trim(), Date = string.IsNullOrEmpty(row.Element.FindXPath(".//td[3]").Text.Trim()) ? (DateTime?)null : DateTime.Parse(row.Element.FindXPath(".//td[3]").Text.Trim()) }); }
public QueueIdea ParseIdea(HpgElement idea) { QueueIdea addIdea = new QueueIdea(); addIdea.IdeaName = new HpgElement(idea.Element.FindCss("#newsFeedWidget > div > div.scrollbar-outer.ng-isolate-scope.scroll-content > div.widgetBodyContent.ng-scope > div > div.span11 > div > p.marginTop2 > a")); addIdea.IdeaId = int.Parse(addIdea.IdeaName.Text.Split('-').First().Trim()); addIdea.SubmittedBy = idea.Element.FindCss("#newsFeedWidget > div > div.scrollbar-outer.ng-isolate-scope.scroll-content > div.widgetBodyContent.ng-scope > div > div.span11 > div > p.ng-binding").Text.Replace("Submitted By:", "").Trim(); string ud = string.Join(" ", (from d in idea.Element.FindAllXPath(".//div[@class='widgetDate']/span") select d.Text.Trim())); addIdea.UpdatedDate = DateTime.Parse(ud); return(addIdea); }
public static void SetCheckBox(HpgElement box, bool check) { if (box.Element.Selected != check) //Only perform action if the box is currently different { if (check) { box.Check(); } else { box.UnCheck(); } } }
private CFApPublishedIdea ToPublishedIdea(HpgElement card) { CFApPublishedIdea addIdea = new CFApPublishedIdea(); addIdea.Bookmark = new HpgElement(card.Element.FindCss("a[ng-tooltip='Bookmark Idea']")); addIdea.IdeaName = new HpgElement(card.Element.FindCss("a[class='toggle ng-binding']")); addIdea.IdeaNumber = int.Parse(addIdea.IdeaName.Text.Trim().Split('-')[0].Trim()); addIdea.Updated = DateTime.Parse(card.Element.FindCss("p[class='pull-right autoUpdated']").Text.Replace("Updated:", "").Trim()); addIdea.Category = card.Element.FindCss("p[class='autoCategory ng-binding']").Text.Replace("Category:", "").Trim(); addIdea.Department = card.Element.FindCss("p[class='autoDepartment ng-binding']").Text.Replace("Department:", "").Trim(); addIdea.Impact = card.Element.FindAllCss("i[class='icon-usd']").Count(); addIdea.ImpactLevel = Enums.levels[addIdea.Impact]; addIdea.Effort = card.Element.FindAllCss("i[class='icon-wrench']").Count(); addIdea.EffortLevel = Enums.levels[addIdea.Effort]; addIdea.ImplementSelect = new HpgElement(card.Element.FindXPath(".//input[@ng-model='idea.updateImplementationStatus']")); addIdea.ImplementedStatus = Enums.ImplementedStatusString[card.Element.FindXPath(".//p[@class='autoImplementedStatus']/span").Text.Trim()]; return(addIdea); }
/// <summary> /// Checks the last SoC specified in socPath /// </summary> /// <param name="socPath">string '/' seperated path to the desired SoC</param> public void ApplySoC(string socPath, string hierarchy = "OCGDMF") { //hierarchy = Orginazation, Company, Group, Division, Market, Facility var paths = socPath.Split('/'); SoC node = new SoC(); HpgElement socParent = new HpgElement(_dialog); for (int i = 0; i < paths.Count() - 1; i++) { node = AvailableSoCs(socParent, paths[i].Trim()).Last(s => RegExRemove(s.Name.Text).ToLower().Equals(RegExRemove(paths[i]).ToLower()) && s.Hierarchy.ToUpper().Equals(hierarchy[i].ToString())); socParent = node.row; node.Name.Click(); } node = AvailableSoCs(socParent, paths.Last()).Last(s => RegExRemove(s.Name.Text).ToLower().Equals(RegExRemove(paths.Last()).ToLower()) && s.Hierarchy.ToUpper().Equals(hierarchy[paths.Count() - 1].ToString())); node.Name.Click(); node.Checkbox.Check(); HpgAssert.True(SelectedSoCs().FindAll(s => RegExRemove(s.Name.Text).ToLower().Equals(RegExRemove(paths.Last()).ToLower()) && s.Hierarchy.ToUpper().Equals(hierarchy[paths.Count() - 1].ToString())).Any(), "Verify specified SoC has been selected"); }
public List <SoC> AvailableSoCs(HpgElement parent, string first = "") { List <SoC> returnList = new List <SoC>(); if (!parent.Element.FindXPath(".//ul/li").Exists(new Options() { Timeout = TimeSpan.FromSeconds(60) })) { return(returnList); } foreach (SnapshotElementScope soc in parent.Element.FindAllXPath(".//ul/li")) { returnList.Add(new SoC() { Checkbox = new HpgElement(soc.FindXPath(".//input", new Options() { Match = Match.First })), Name = new HpgElement(soc.FindXPath(".//span[@ng-click='toggleChildren(node)']", new Options() { Match = Match.First })), Hierarchy = soc.FindXPath(".//span[@ng-class='formatter.getJurisdictionTypeClass(node.hierarchy)']", new Options() { Match = Match.First }).Text.Trim(), row = new HpgElement(soc) }); if (!string.IsNullOrEmpty(first)) { if (returnList.Any(s => RegExRemove(s.Name.Text).Equals(RegExRemove(first)))) { return(returnList); } } } return(returnList); }
public AssociatedIdeasDialog(BrowserSession browser) { Dialog = new HpgElement(browser.FindId("editAssociationsDialog")); }
public EditForm(BrowserSession browser) { form = new HpgElement(browser.FindCss("#editDialog > form")); }
public string FillFormField(HpgElement field, string fieldValue) { //HpgAssert.Exists(field, "Verify field '" + field.Element.Id + "' exists"); string originalValue = ""; string elementType = field.Element["outerHTML"]; elementType = elementType.Substring(1, elementType.IndexOf(' ')).Trim().ToLower(); switch (elementType) { case "input": //Text, Check, or Radio switch (field.Element["type"].ToLower()) { case "text": //text box originalValue = field.Text; field.Type(fieldValue); break; case "checkbox": //check box if (field.Element.Selected) { originalValue = "TRUE"; } if (fieldValue.Trim().Equals("")) { field.Element.Click(); field.UnCheck(); } else { field.Element.Click(); field.Check(); } break; case "radio": //radio button ElementScope originalSelection = browser.FindXPath("//input[@name='" + field.Element.Id + "' and @checked='true']"); if (originalSelection.Exists()) { originalValue = originalSelection.Value; } field.Element.Click(); browser.Choose(field.Element.Id); break; } break; case "select": //Drop-Down originalValue = field.Element.SelectedOption; field.Click(); field.Element.SendKeys(fieldValue); field.Element.FindXPath(".//*[.='" + fieldValue + "']").Click(); browser.Select(fieldValue).From(field.Element.Id); break; case "textarea": //Large text area originalValue = field.Text; field.Type(fieldValue); break; } return(originalValue); }
public string FillFormField(string fieldID, string fieldValue) { HpgElement field = new HpgElement(browser.FindId(fieldID)); return(FillFormField(field, fieldValue)); }