Action sequences
The Actions class provides Selenium 4-style Actions API for building complex interaction sequences.
using Avalonia.HeadlessTestingFramework.Appium;
// Basic mouse actions
new Actions(driver)
.MoveToElement(element)
.Click()
.Perform();
// Complex sequence with keyboard and mouse
new Actions(driver)
.MoveToElement(inputField)
.Click()
.KeyDown(Key.LeftShift)
.SendKeys("HELLO")
.KeyUp(Key.LeftShift)
.Perform();
// Drag and drop
new Actions(driver)
.DragAndDrop(sourceElement, targetElement)
.Perform();
// Drag by offset
new Actions(driver)
.DragAndDropBy(element, 100, 50)
.Perform();
// Double click
new Actions(driver)
.DoubleClick(element)
.Perform();
// Context click (right-click)
new Actions(driver)
.ContextClick(element)
.Perform();
// Click and hold
new Actions(driver)
.MoveToElement(element)
.ClickAndHold()
.MoveByOffset(100, 0)
.Release()
.Perform();
// Scroll
new Actions(driver)
.Scroll(0, -100)
.Perform();
// Scroll to element
new Actions(driver)
.ScrollToElement(element)
.Perform();
// With pauses
new Actions(driver)
.MoveToElement(element)
.Pause(500)
.Click()
.Pause(TimeSpan.FromMilliseconds(200))
.SendKeys("text")
.Perform();
// Async execution
await new Actions(driver)
.MoveToElement(element)
.Click()
.PerformAsync();
// Reset and reuse
var actions = new Actions(driver);
actions.Click(element1).Perform();
actions.Reset();
actions.Click(element2).Perform();