public void Mouse_click_will_fail_because_hidden_link_is_matched_instead_of_visible_link()
        {
            // Playback.PlaybackSettings.SmartMatchOptions = SmartMatchOptions.None; // tried Sudhish Mathuria's suggestion

            var example2Path = Path.Combine(TestContext.TestDeploymentDir, "example2.htm");

            var window = BrowserWindow.Launch(example2Path);

            var document = new HtmlDocument(window);
            document.FilterProperties[HtmlDocument.PropertyNames.Title] = "2ad6de55-75f1-403f-8fcb-1d5defac9786";

            var visibleLink = new HtmlHyperlink(document);
            visibleLink.SearchProperties[HtmlHyperlink.PropertyNames.InnerText] = "Hello";

            // ONLY FIND VISIBLE CONTROLS !
            visibleLink.SearchConfigurations.Add(SearchConfiguration.VisibleOnly);

            var allMatches = visibleLink.FindMatchingControls();
            Assert.AreEqual(2, allMatches.Count, "Should be two matching.");

            visibleLink.Find(); // THIS SHOULD BE THE VISIBLE ONE

            Debug.WriteLine("BoundingRectangle: " + visibleLink.BoundingRectangle);
            Assert.IsTrue(visibleLink.BoundingRectangle.Width > 0, "Width should positive.");
            Assert.IsTrue(visibleLink.BoundingRectangle.Height > 0, "Height should positive.");

            Mouse.Click(visibleLink);
        }
예제 #2
0
        public void Mouse_click_will_fail_because_hidden_link_is_matched_instead_of_visible_link()
        {
            // Playback.PlaybackSettings.SmartMatchOptions = SmartMatchOptions.None; // tried Sudhish Mathuria's suggestion

            var example2Path = Path.Combine(TestContext.TestDeploymentDir, "example2.htm");

            var window = BrowserWindow.Launch(example2Path);

            var document = new HtmlDocument(window);

            document.FilterProperties[HtmlDocument.PropertyNames.Title] = "2ad6de55-75f1-403f-8fcb-1d5defac9786";

            var visibleLink = new HtmlHyperlink(document);

            visibleLink.SearchProperties[HtmlHyperlink.PropertyNames.InnerText] = "Hello";

            // ONLY FIND VISIBLE CONTROLS !
            visibleLink.SearchConfigurations.Add(SearchConfiguration.VisibleOnly);

            var allMatches = visibleLink.FindMatchingControls();

            Assert.AreEqual(2, allMatches.Count, "Should be two matching.");

            visibleLink.Find(); // THIS SHOULD BE THE VISIBLE ONE

            Debug.WriteLine("BoundingRectangle: " + visibleLink.BoundingRectangle);
            Assert.IsTrue(visibleLink.BoundingRectangle.Width > 0, "Width should positive.");
            Assert.IsTrue(visibleLink.BoundingRectangle.Height > 0, "Height should positive.");

            Mouse.Click(visibleLink);
        }
예제 #3
0
        public void NavigateDailyPlans()
        {
            var uiLinkDailyPlans = new HtmlHyperlink(browser);

            uiLinkDailyPlans.SearchProperties.Add(HtmlControl.PropertyNames.Id, IndexDailyPlanPageConst.MENU_DAILY_PLAN_LINK_ID);
            uiLinkDailyPlans.Find();
            Mouse.Click(uiLinkDailyPlans);
        }
예제 #4
0
        public void NavigateToProjects()
        {
            var uiLinkProjects = new HtmlHyperlink(browser);

            uiLinkProjects.SearchProperties.Add(HtmlControl.PropertyNames.Id, IndexPageConst.MENU_PROJECT_LINK_ID);
            uiLinkProjects.Find();
            Mouse.Click(uiLinkProjects);
        }
예제 #5
0
        public ProjectDetailsPage NavigateToProjectDetails()
        {
            var uiLinkDetails = new HtmlHyperlink(browser);

            uiLinkDetails.SearchProperties.Add(HtmlControl.PropertyNames.Class, WorkItemDetailsPageConst.DETAILS_PROJECT_LINK_ID);
            uiLinkDetails.Find();
            Mouse.Click(uiLinkDetails);

            return(new ProjectDetailsPage(browser));
        }
예제 #6
0
        public EditWorkItemPage NavigateToEditPage()
        {
            var uiLinkEdit = new HtmlHyperlink(browser);

            uiLinkEdit.SearchProperties.Add(HtmlControl.PropertyNames.Class, WorkItemDetailsPageConst.DETAILS_EDIT_LINK_ID);
            uiLinkEdit.Find();
            Mouse.Click(uiLinkEdit);

            return(new EditWorkItemPage(browser));
        }
예제 #7
0
        public EditProjectPage NavigateToEditProject()
        {
            var uiLinkEdit = new HtmlHyperlink(new HtmlTable(browser));

            uiLinkEdit.SearchProperties.Add(HtmlControl.PropertyNames.Class, ProjectsPageConst.INDEX_EDIT_LINK_CLASS);
            uiLinkEdit.Find();
            Mouse.Click(uiLinkEdit);

            return(new EditProjectPage(browser));
        }
예제 #8
0
        public ProjectsPage NavigateToProjectsPage()
        {
            var uiLinkDetails = new HtmlHyperlink(browser);

            uiLinkDetails.SearchProperties.Add(HtmlControl.PropertyNames.Id, ProjectDetailsPageConst.DETAILS_BACK_TO_LIST_LINK_ID);
            uiLinkDetails.Find();
            Mouse.Click(uiLinkDetails);

            return(new ProjectsPage(browser));
        }
예제 #9
0
        public WorkItemDetailsPage NavigateToWorkItemDetails()
        {
            var uiLinkDetails = new HtmlHyperlink(browser);

            uiLinkDetails.SearchProperties.Add(HtmlControl.PropertyNames.Class, ProjectDetailsPageConst.DETAILS_WORKITEM_LINK_CLASS);
            uiLinkDetails.Find();
            Mouse.Click(uiLinkDetails);

            return(new WorkItemDetailsPage(browser));
        }
예제 #10
0
        public DailyPlansPage NavigateBackToList()
        {
            var uiLinkList = new HtmlHyperlink(browser);

            uiLinkList.SearchProperties.Add(HtmlControl.PropertyNames.Id, DetailsDailyPlanPageConst.DETAILS_BACK_TO_LIST_LINK_ID);
            uiLinkList.Find();
            Mouse.Click(uiLinkList);

            return(new DailyPlansPage(browser));
        }
예제 #11
0
        public EditProjectPage NavigateToEditProject()
        {
            var uiLinkEdit = new HtmlHyperlink(new HtmlTable(browser));

            uiLinkEdit.SearchProperties.Add(HtmlControl.PropertyNames.Id, ProjectDetailsPageConst.DETAILS_EDIT_PROJECT_LINK_ID);
            uiLinkEdit.Find();
            Mouse.Click(uiLinkEdit);

            return(new EditProjectPage(browser));
        }
예제 #12
0
        public AddWorkItemPage NavigateToAddWorkItem()
        {
            var uiLinkAdd = new HtmlHyperlink(browser);

            uiLinkAdd.SearchProperties.Add(HtmlControl.PropertyNames.Id, ProjectDetailsPageConst.DETAILS_ADD_WORKITEM_LINK_ID);
            uiLinkAdd.Find();
            Mouse.Click(uiLinkAdd);

            return(new AddWorkItemPage(browser));
        }
예제 #13
0
        public DetailsDailyPlanPage NavigateToDetailsDailyPlan()
        {
            var uiDetails = new HtmlHyperlink(browser);

            uiDetails.SearchProperties.Add(HtmlControl.PropertyNames.Id, DailyPlanPageConst.INDEX_DAILYPLAN_DETAILS_LINK_ID);
            uiDetails.Find();
            Mouse.Click(uiDetails);

            return(new DetailsDailyPlanPage(browser));
        }
예제 #14
0
        public WorkItemDetailsPage NavigateToDetailsDayBeforeWorkItem()
        {
            var uiWITodayDetails = new HtmlHyperlink(browser);

            uiWITodayDetails.SearchProperties.Add(HtmlControl.PropertyNames.Class, DailyPlanPageConst.INDEX_DAILY_PLAN_DAY_BEFORE_DETAILS_LINK_CLASS);
            uiWITodayDetails.Find();
            Mouse.Click(uiWITodayDetails);

            return(new WorkItemDetailsPage(browser));
        }
예제 #15
0
        public AddDailyPlanPage NavigateToAddDailyPlan()
        {
            var uiLinkDailyPlans = new HtmlHyperlink(browser);

            uiLinkDailyPlans.SearchProperties.Add(HtmlControl.PropertyNames.Id, AddDailyPlanPageConst.INDEX_DAILY_PLAN_ADD_LINK_ID);
            uiLinkDailyPlans.Find();
            Mouse.Click(uiLinkDailyPlans);

            return(new AddDailyPlanPage(browser));
        }
예제 #16
0
        public EditDailyPlanPage NavigateToEditDailyPlan()
        {
            var uiLinkAdd = new HtmlHyperlink(browser);

            uiLinkAdd.SearchProperties.Add(HtmlControl.PropertyNames.Id, EditDailyPlanPageConst.INDEX_DAILY_PLAN_EDIT_LINK_ID);
            uiLinkAdd.Find();
            Mouse.Click(uiLinkAdd);

            return(new EditDailyPlanPage(browser));
        }
예제 #17
0
        public DeleteProjectPage DeleteProject()
        {
            var uiLinkDelete = new HtmlHyperlink(browser);

            uiLinkDelete.SearchProperties.Add(HtmlControl.PropertyNames.Class, ProjectsPageConst.INDEX_DELETE_LINK_CLASS);
            uiLinkDelete.Find();
            Mouse.Click(uiLinkDelete);

            return(new DeleteProjectPage(browser));
        }
예제 #18
0
        public AddProjectPage NavigateToAddProject()
        {
            var uiLinkAdd = new HtmlHyperlink(browser);

            uiLinkAdd.SearchProperties.Add(HtmlControl.PropertyNames.Id, ProjectsPageConst.INDEX_ADD_LINK_ID);
            uiLinkAdd.Find();
            Mouse.Click(uiLinkAdd);

            return(new AddProjectPage(browser));
        }
예제 #19
0
 public MyMetricsPage VerifyMyMetricsPageReached()
 {
     try
     {
         var createNewLink = new HtmlHyperlink(_browser);
         createNewLink.SearchProperties.Add(HtmlHyperlink.PropertyNames.InnerText, "CreateNew");
         createNewLink.SearchProperties.Add(HtmlHyperlink.PropertyNames.AbsolutePath, "/MyMetricsPage/Create");
         createNewLink.Find();
     }
     catch (Exception e)
     {
         Assert.Fail("Could not find create new link and verify my metrics page reached: " + e.Message);
     }
     return(this);
 }
예제 #20
0
        public CreatePage ClickCreateNewLink()
        {
            try
            {
                var createNewLink = new HtmlHyperlink(_browser);
                createNewLink.SearchProperties.Add(HtmlHyperlink.PropertyNames.InnerText, "CreateNew");
                createNewLink.SearchProperties.Add(HtmlHyperlink.PropertyNames.AbsolutePath, "/FoodLogEntries/Create");
                createNewLink.Find();

                Mouse.Click(createNewLink);
            }
            catch (Exception e)
            {
                Assert.Fail("Could not find create new link and verify nutrition page reached: " + e.Message);
            }
            return(new CreatePage(_browser));
        }
예제 #21
0
        public MyMetricsPage ClickMyMetricsLink()
        {
            try
            {
                var myMetricsLink = new HtmlHyperlink(_browser);
                myMetricsLink.SearchProperties.Add(HtmlHyperlink.PropertyNames.InnerText, "My Metrics");
                myMetricsLink.Find();

                Mouse.Click(myMetricsLink);
            }
            catch (Exception e)
            {
                Assert.Fail("Could not find My Metrics link: " + e.Message);
            }

            return(new MyMetricsPage(_browser));
        }
예제 #22
0
        public NutritionPage ClickNutritionLink()
        {
            try
            {
                var nutritionLink = new HtmlHyperlink(_browser);
                nutritionLink.SearchProperties.Add(HtmlHyperlink.PropertyNames.InnerText, "Nutrition");
                nutritionLink.SearchProperties.Add(HtmlHyperlink.PropertyNames.AbsolutePath, "/FoodLogEntries");
                nutritionLink.Find();

                Mouse.Click(nutritionLink);
            }
            catch (Exception e)
            {
                Assert.Fail("Could not find nutrition link: " + e.Message);
            }

            return(new NutritionPage(_browser));
        }
예제 #23
0
        public ExercisePage ClickExercisesLink()
        {
            try
            {
                var excercisesLink = new HtmlHyperlink(_browser);
                excercisesLink.SearchProperties.Add(HtmlHyperlink.PropertyNames.Href, "/Exercises");
                excercisesLink.SearchProperties.Add(HtmlHyperlink.PropertyNames.InnerText, "Excerciese");
                excercisesLink.Find();

                Mouse.Click(excercisesLink);
            }
            catch (Exception e)
            {
                Assert.Fail("Could not find excercises link: " + e.Message);
            }

            return(new ExcercisePage(_browser));
        }