コード例 #1
0
ファイル: swMaster.cs プロジェクト: bw-work/Streetwise
 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");
     }
 }
コード例 #2
0
        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);
                }
            }
        }
コード例 #3
0
ファイル: swMaster.cs プロジェクト: bw-work/Streetwise
        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);
        }
コード例 #4
0
ファイル: swMaster.cs プロジェクト: bw-work/Streetwise
        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);
        }
コード例 #5
0
        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");
            }
        }
コード例 #6
0
        /// <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");
            }
        }
コード例 #7
0
ファイル: im3PV.cs プロジェクト: bw-work/Streetwise
 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())
     });
 }
コード例 #8
0
        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);
        }
コード例 #9
0
ファイル: swMaster.cs プロジェクト: bw-work/Streetwise
 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();
         }
     }
 }
コード例 #10
0
        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);
        }
コード例 #11
0
ファイル: im3PV.cs プロジェクト: bw-work/Streetwise
            /// <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");
            }
コード例 #12
0
ファイル: im3PV.cs プロジェクト: bw-work/Streetwise
            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);
            }
コード例 #13
0
ファイル: im3PV.cs プロジェクト: bw-work/Streetwise
 public AssociatedIdeasDialog(BrowserSession browser)
 {
     Dialog = new HpgElement(browser.FindId("editAssociationsDialog"));
 }
コード例 #14
0
ファイル: EditResultTypes.cs プロジェクト: bw-work/Streetwise
 public EditForm(BrowserSession browser)
 {
     form = new HpgElement(browser.FindCss("#editDialog > form"));
 }
コード例 #15
0
ファイル: swMaster.cs プロジェクト: bw-work/Streetwise
        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);
        }
コード例 #16
0
ファイル: swMaster.cs プロジェクト: bw-work/Streetwise
        public string FillFormField(string fieldID, string fieldValue)
        {
            HpgElement field = new HpgElement(browser.FindId(fieldID));

            return(FillFormField(field, fieldValue));
        }