How to Drag and Drop
The HTML element wrapper classes make mouse drag & drop operations significantly easier. There are 7 different drag methods defined:
- public virtual void DragTo(ArtOfTest.WebAii.Controls.HtmlControls.HtmlControl control)
- public virtual void DragTo(System.Drawing.Point absolutePoint)
- public virtual void DragTo(int offsetX, int offsetY)
- public virtual void DragTo(ArtOfTest.WebAii.Controls.HtmlControls.HtmlControl control, ArtOfTest.WebAii.Core.OffsetReference destinationOffsetReference, System.Drawing.Point destinationOffset)
- public virtual void DragTo(ArtOfTest.WebAii.Core.OffsetReference sourceOffsetReference, System.Drawing.Point sourceOffset, ArtOfTest.WebAii.Controls.HtmlControls.HtmlControl destination)
- public virtual void DragTo(ArtOfTest.WebAii.Core.OffsetReference sourceOffsetReference, System.Drawing.Point sourceOffset, int destinationOffsetX, int destinationOffsetY)
- public virtual void DragTo(ArtOfTest.WebAii.Core.OffsetReference sourceOffsetReference, System.Drawing.Point sourceOffset, ArtOfTest.WebAii.Controls.HtmlControls.HtmlControl destination, ArtOfTest.WebAii.Core.OffsetReference destinationOffsetReference, System.Drawing.Point destinationOffset)
Suppose we have an sales by area table that supports drag & drop between cells. We can easily drag & drop the contents of one cell to another cell like this:
C#
// Find the sales table
HtmlTable salesTable = Find.ById<HtmlTable>("area_1_table");
// Drag the data from row 4 to row 3
salesTable.BodyRows[3].Cells[1].DragTo(salesTable.BodyRows[2].Cells[1]);
// Verify the new row subtotals are correct
Assert.AreEqual(salesTable.Rows[2].Cells[5].TextContent, "$3342.78");
Assert.AreEqual(salesTable.Rows[3].Cells[5].TextContent, "$2175.17");
Visual Basic
' Find the sales table
Dim salesTable As HtmlTable = Find.ById(Of HtmlTable)("area_1_table")
' Drag the data from row 4 to row 3
salesTable.BodyRows(3).Cells(1).DragTo(salesTable.BodyRows(2).Cells(1))
' Verify the new row subtotals are correct
Assert.AreEqual(salesTable.Rows(2).Cells(5).TextContent, "$3342.78")
Assert.AreEqual(salesTable.Rows(3).Cells(5).TextContent, "$2175.17")