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:

// 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");
' 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")