public void ItemsFromEachCategory_DragAndDropToTargetArea_TargetAreaContainsTheItems() { var droppablePage = new DroppablePage(this.driver); InteractionPages drop = AccessExcelData.GetInteractionTestsData(TestContext.CurrentContext.Test.Name); // Get the current test method name (TestContext.CurrentContext.Test.Name = DefaultFunctionality_DragToOppositeCorner_ElementMovedToOppositeCorner) and use it as a Key in the xlsx file // Get the tab number (e.g. "Default functionality", "Prevent propagation") from the test property above and give it to the URL droppablePage.tabNo = TestContext.CurrentContext.Test.Properties.Get("Droppable test tab Number:").ToString(); droppablePage.NavigateTo(droppablePage.URL); // Scroll page Up so the element is into view. Because when Firefox opens the desired page/tab, somehow the page is scrolled down ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", droppablePage.TopOfPage); // Find by one element from each Category accoeding to Data Driven xlsx // Open the respective category, Drag the elements to cart (to Target) droppablePage.OpenCategory(1); Thread.Sleep(1000); droppablePage.DragAndDrop3(drop.Item1, droppablePage.TargetElementTab5); droppablePage.OpenCategory(2); Thread.Sleep(1000); droppablePage.DragAndDrop3(drop.Item2, droppablePage.TargetElementTab5); droppablePage.OpenCategory(3); Thread.Sleep(1000); droppablePage.DragAndDrop3(drop.Item3, droppablePage.TargetElementTab5); Thread.Sleep(1000); droppablePage.AssertTargetContains(drop.Item1); droppablePage.AssertTargetContains(drop.Item2); droppablePage.AssertTargetContains(drop.Item3); }
public void ConstrainMovementHorizontal_DragDiagonally_ElementMovedHorizontallyOnly() { var draggablePage = new DraggablePage(this.driver); InteractionPages drag = AccessExcelData.GetInteractionTestsData(TestContext.CurrentContext.Test.Name); // Get the current test method name (TestContext.CurrentContext.Test.Name = ConstrainMovementHorizontal_DragDiagonally_ElementMovedHorizontallyOnly) and use it as a Key in the xlsx file // Get the tab number (e.g. "Default functionality", Constrain movement") from the test property above and give it to the URL draggablePage.tabNo = TestContext.CurrentContext.Test.Properties.Get("Draggable test tab Number:").ToString(); draggablePage.NavigateTo(draggablePage.URL); // Scroll page Up so the element is into view. Because when Firefox opens the desired page/tab, somehow the page is scrolled down ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", draggablePage.TopOfPage); draggablePage.DragObject(int.Parse(drag.HorizontalOffset), int.Parse(drag.VerticalOffset), draggablePage.DraggableElementConstraint); draggablePage.AssertElementIsMovedCorrectly(int.Parse(drag.HorizontalOffset), 0, draggablePage.DraggableElementConstraint); }
public void ResizableConstrainedItem_ResizeSidesMoreThanConstraints_ItemResizeConstrainedByConstraints() { var resizablePage = new ResizablePage(this.driver); // Get the current test method name and use it as a Key in the xlsx file InteractionPages resize = AccessExcelData.GetInteractionTestsData(TestContext.CurrentContext.Test.Name); // Get the tab number (e.g. "Default functionality", Constrain movement") from the test property above and give it to the URL resizablePage.tabNo = TestContext.CurrentContext.Test.Properties.Get("Resizable test tab Number:").ToString(); resizablePage.NavigateTo(resizablePage.URL); // Scroll page Up so the element is into view. Because when Firefox opens the desired page/tab, somehow the page is scrolled down ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", resizablePage.TopOfPage); resizablePage.IncreaseWidthAndHeightBy3(int.Parse(resize.HorizontalOffset), int.Parse(resize.VerticalOffset)); resizablePage.AssertResizableSizeSmallerThanOrEqualToConstraints(resizablePage.resizableElementTab5, resize); }
public void SelectableItems_SelectTwoNonAdjacent_SelectedElementsStatusChangedToSelected() { var selectablePage = new SelectablePage(this.driver); // Get the current test method name (TestContext.CurrentContext.Test.Name = SelectableItems_SelectTwoNonAdjacent_SelectedElementsStatusChangedToSelected) and use it as a Key in the xlsx file InteractionPages select = AccessExcelData.GetInteractionTestsData(TestContext.CurrentContext.Test.Name); // Get the tab number (e.g. "Default functionality", Constrain movement") from the test property above and give it to the URL selectablePage.tabNo = TestContext.CurrentContext.Test.Properties.Get("Selectable test tab Number:").ToString(); selectablePage.NavigateTo(selectablePage.URL); // Scroll page Up so the element is into view. Because when Firefox opens the desired page/tab, somehow the page is scrolled down ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", selectablePage.TopOfPage); selectablePage.SelectSelectableElements(this.driver, selectablePage.SelectableItems[int.Parse(select.Item1)], selectablePage.SelectableItems[int.Parse(select.Item2)]); selectablePage.AssertSelectedAttribute("ui-widget-content ui-corner-left ui-selectee ui-selected", selectablePage.SelectableItems[int.Parse(select.Item1)]); selectablePage.AssertSelectedAttribute("ui-widget-content ui-corner-left ui-selectee ui-selected", selectablePage.SelectableItems[int.Parse(select.Item2)]); }
public void ResizableItem_ResizeSides_ItemSidesResizedProperly() { var resizablePage = new ResizablePage(this.driver); // Get the current test method name (TestContext.CurrentContext.Test.Name = ResizableItem_ResizeSides_ItemSidesResizedProperly) and use it as a Key in the xlsx file InteractionPages resize = AccessExcelData.GetInteractionTestsData(TestContext.CurrentContext.Test.Name); // Get the tab number (e.g. "Default functionality", Constrain movement") from the test property above and give it to the URL resizablePage.tabNo = TestContext.CurrentContext.Test.Properties.Get("Resizable test tab Number:").ToString(); resizablePage.NavigateTo(resizablePage.URL); // Scroll page Up so the element is into view. Because when Firefox opens the desired page/tab, somehow the page is scrolled down ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", resizablePage.TopOfPage); resizablePage.IncreaseWidthAndHeightBy2(int.Parse(resize.HorizontalOffset), int.Parse(resize.VerticalOffset)); // Exact Assert would not pass because the resized item's dimensions are 17 pixels less than logically expected // See method AssertSizeIncreasedWith2 for details resizablePage.AssertSizeIncreasedWith2(int.Parse(resize.HorizontalOffset), int.Parse(resize.VerticalOffset)); }
public void DraggableAndSortable_DragItem2ToListBottom_Item2IsAtListBottom() { var draggablePage = new DraggablePage(this.driver); // Get the current test method name and use it as a Key in the xlsx file InteractionPages drag = AccessExcelData.GetInteractionTestsData(TestContext.CurrentContext.Test.Name); // Get the tab number (e.g. "Default functionality", Constrain movement") from the test property above and give it to the URL draggablePage.tabNo = TestContext.CurrentContext.Test.Properties.Get("Draggable test tab Number:").ToString(); draggablePage.NavigateTo(draggablePage.URL); // Scroll page Up so the element is into view. Because when Firefox opens the desired page/tab, somehow the page is scrolled down ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", draggablePage.TopOfPage); draggablePage.DragObject(int.Parse(drag.HorizontalOffset), int.Parse(drag.VerticalOffset), draggablePage.DraggableSortableElement2); // Assert that the element 5 from the list now has text "Item 2" // Thread.Sleep(1000); - deprecated because I use now a sleeker wait in the AssertSortableElementIsMovedAtBottom() draggablePage.AssertSortableElementIsMovedAtBottom("Item 2"); }
public void Grid_DragOneSortableItemAfterAnother_OrderOfNumberedSortableItemsChangedAccordingly() { var sortablePage = new SortablePage(this.driver); // Get the current test method name and use it as a Key in the xlsx file InteractionPages sort = AccessExcelData.GetInteractionTestsData(TestContext.CurrentContext.Test.Name); // Get the webpage tab number (e.g. "Default functionality", Connect Lists") from the Test Property above and give it to the URL sortablePage.tabNo = TestContext.CurrentContext.Test.Properties.Get("Sortable test tab Number:").ToString(); sortablePage.NavigateTo(sortablePage.URL); // Scroll page Up so the element is into view. Because when Firefox opens the desired page/tab, somehow the page is scrolled down ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", sortablePage.TopOfPage); // Get the element 1 and its initial position IWebElement element1 = sortablePage.SortableElementsTab3[int.Parse(sort.Item1) - 1]; Point expectedElement1PositionAfter = sortablePage.SortableElementsTab3[int.Parse(sort.Item2) - 1].Location; // Drag desired (given in xlsx file) Sortable Item 1 after given Sortable Item 2 sortablePage.DragAndDropSortableAfterElement(this.driver, sortablePage.SortableElementsTab3[int.Parse(sort.Item1) - 1], sortablePage.SortableElementsTab3[int.Parse(sort.Item2) - 1]); sortablePage.AssertElement1MovedToElement2Position(this.driver, expectedElement1PositionAfter, element1); }
public void ConnectLists_DragOneSortableItemFromFirstListToSecondList_NumberOfItemsChangedAccordingly() { var sortablePage = new SortablePage(this.driver); // Get the current test method name and use it as a Key in the xlsx file InteractionPages sort = AccessExcelData.GetInteractionTestsData(TestContext.CurrentContext.Test.Name); // Get the webpage tab number (e.g. "Default functionality", Connect Lists") from the Test Property above and give it to the URL sortablePage.tabNo = TestContext.CurrentContext.Test.Properties.Get("Sortable test tab Number:").ToString(); sortablePage.NavigateTo(sortablePage.URL); // Scroll page Up so the element is into view. Because when Firefox opens the desired page/tab, somehow the page is scrolled down ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", sortablePage.TopOfPage); // Get the initial number of elements in each column var SortableItemsColumn1CountBefore = sortablePage.SortableItemsColumn1.Count; var SortableItemsColumn2CountBefore = sortablePage.SortableItemsColumn2.Count; // Drag desired (given in xlsx file) Sortable Item from column 1 to column 2 sortablePage.DragAndDropSortableElement(this.driver, sortablePage.SortableItemsColumn1[int.Parse(sort.Item1) - 1], sortablePage.SortableColumn2); sortablePage.Column1ElementCountDecreased(this.driver, sortablePage.SortableItemsColumn1, SortableItemsColumn1CountBefore); sortablePage.Column2ElementCountIncreased(this.driver, sortablePage.SortableItemsColumn2, SortableItemsColumn2CountBefore); }
public void DefaultFunctionality_DragLastItemToListTop_LastItemIsAtListTop() { var sortablePage = new SortablePage(this.driver); // Get the current test method name and use it as a Key in the xlsx file InteractionPages sort = AccessExcelData.GetInteractionTestsData(TestContext.CurrentContext.Test.Name); // Get the tab number (e.g. "Default functionality", Constrain movement") from the Test Property above and give it to the URL sortablePage.tabNo = TestContext.CurrentContext.Test.Properties.Get("Sortable test tab Number:").ToString(); sortablePage.NavigateTo(sortablePage.URL); // Scroll page Up so the element is into view. Because when Firefox opens the desired page/tab, somehow the page is scrolled down ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", sortablePage.TopOfPage); // Drag Sortable Item 2 to position before Sortable Item 1 sortablePage.DragSortableElement(this.driver, sortablePage.SortableItemsTab1[int.Parse(sort.Item1)], sortablePage.SortableItemsTab1[int.Parse(sort.Item2)]); // Get the elements' positions after sorting - used for the "Another way to assert it" sortablePage.RecheckSortableElements(sort.Item1, sort.Item2); sortablePage.ElementSortedOrder(sortablePage.Element2Position, sortablePage.Element1Position); // Another way to assert it: sortablePage.ElementSortedOrderAnotherWayOfAssert(sortablePage.item2PositionAfter, sortablePage.item1PositionAfter); }
public static void AssertResizableSizeSmallerThanOrEqualToConstraints(this ResizablePage page, IWebElement resizableElement, InteractionPages resize) { Assert.LessOrEqual(resizableElement.Size.Width, int.Parse(resize.HorizontalOffset)); Assert.LessOrEqual(resizableElement.Size.Height, int.Parse(resize.VerticalOffset)); }