WebDriver: Методы управления мышью (C#)

WebDriver позволяет выполнять все необходимые действия пользователя с мышью. Данные методы реализованы в классе Actions. С помощью этого класса можно задать последовательность действий и выполнить их, используя метод Perform(). Методы данного класса можно использовать для работы с touch screen устройствами. В этой заметке рассмотрим примеры использования методов класса Actions.

Перетаскивание элемента:

1
2
3
4
5
6
        public void DragAndDrop(IWebElement sourceElement, IWebElement targetElement)
        {
            Trace.WriteLine("Perform a drag-and-drop operation from '" + sourceElement + "' to  '" + targetElement + "'", "Document");
            var builder = new OpenQA.Selenium.Interactions.Actions(_driver);
            builder.DragAndDrop(sourceElement, targetElement).Perform();
        }
        public void DragAndDrop(IWebElement sourceElement, IWebElement targetElement)
        {
            Trace.WriteLine("Perform a drag-and-drop operation from '" + sourceElement + "' to  '" + targetElement + "'", "Document");
            var builder = new OpenQA.Selenium.Interactions.Actions(_driver);
            builder.DragAndDrop(sourceElement, targetElement).Perform();
        }

Перетаскивание элемента с указанным смещением:

1
2
3
4
5
6
        public void DragAndDropToOffset(IWebElement element, int offsetX, int offsetY)
        {
            Trace.WriteLine("Perform a drag-and-drop operation on '" + element + "'  to a specified offset ('" + offsetX +"','"+ offsetY +"')", "Document");
            var builder = new OpenQA.Selenium.Interactions.Actions(_driver);
            builder.DragAndDropToOffset(element, offsetX, offsetY).Perform();
        }
        public void DragAndDropToOffset(IWebElement element, int offsetX, int offsetY)
        {
            Trace.WriteLine("Perform a drag-and-drop operation on '" + element + "'  to a specified offset ('" + offsetX +"','"+ offsetY +"')", "Document");
            var builder = new OpenQA.Selenium.Interactions.Actions(_driver);
            builder.DragAndDropToOffset(element, offsetX, offsetY).Perform();
        }

Нажатие мышью по заданному элементу:

1
2
3
4
5
6
        public void MouseClick(IWebElement element)
        {
            Trace.WriteLine("Click the mouse on the element '" + element + "'", "Document");
            var builder = new OpenQA.Selenium.Interactions.Actions(_driver);
            builder.Click(element).Perform();
        }
        public void MouseClick(IWebElement element)
        {
            Trace.WriteLine("Click the mouse on the element '" + element + "'", "Document");
            var builder = new OpenQA.Selenium.Interactions.Actions(_driver);
            builder.Click(element).Perform();
        }

Нажать мышью по заданному элементу с удержанием клавиши:

1
2
3
4
5
6
        public void MouseClickAndHold(IWebElement element)
        {
            Trace.WriteLine("Click and hold the mouse button down on the '" + element + "'", "Document");
            var builder = new OpenQA.Selenium.Interactions.Actions(_driver);
            builder.ClickAndHold(element).Perform();
        }
        public void MouseClickAndHold(IWebElement element)
        {
            Trace.WriteLine("Click and hold the mouse button down on the '" + element + "'", "Document");
            var builder = new OpenQA.Selenium.Interactions.Actions(_driver);
            builder.ClickAndHold(element).Perform();
        }

Нажать правую кнопку мыши по элементу (вызвать контекстное меню):

1
2
3
4
5
6
        public void MouseContextClick(IWebElement element)
        {
            Trace.WriteLine("Right-clicks the mouse on the '" + element + "'", "Document");
            var builder = new OpenQA.Selenium.Interactions.Actions(_driver);
            builder.ContextClick(element).Perform();
        }
        public void MouseContextClick(IWebElement element)
        {
            Trace.WriteLine("Right-clicks the mouse on the '" + element + "'", "Document");
            var builder = new OpenQA.Selenium.Interactions.Actions(_driver);
            builder.ContextClick(element).Perform();
        }

Двойное нажатие мышью:

1
2
3
4
5
6
        public void MouseDoubleClick(IWebElement element)
        {
            Trace.WriteLine("Double-clicks the mouse on the '" + element + "'", "Document");
            var builder = new OpenQA.Selenium.Interactions.Actions(_driver);
            builder.DoubleClick(element).Perform();
        }
        public void MouseDoubleClick(IWebElement element)
        {
            Trace.WriteLine("Double-clicks the mouse on the '" + element + "'", "Document");
            var builder = new OpenQA.Selenium.Interactions.Actions(_driver);
            builder.DoubleClick(element).Perform();
        }

Сместить мышь:

1
2
3
4
5
6
        public void MouseMoveByOffset(int offsetX, int offsetY)
        {
            Trace.WriteLine("Move the mouse to the '" + offsetX + "', '" + offsetY + "'", "Document");
            var builder = new OpenQA.Selenium.Interactions.Actions(_driver);
            builder.MoveByOffset(offsetX, offsetY).Perform();
        }
        public void MouseMoveByOffset(int offsetX, int offsetY)
        {
            Trace.WriteLine("Move the mouse to the '" + offsetX + "', '" + offsetY + "'", "Document");
            var builder = new OpenQA.Selenium.Interactions.Actions(_driver);
            builder.MoveByOffset(offsetX, offsetY).Perform();
        }

Переместить мышь, указать в какое место элемента произвести нажатие:

1
2
3
4
5
6
        public void MouseMoveToElement(IWebElement element, int offsetX, int offsetY)
        {
            Trace.WriteLine("Move the mouse to the element '" + element + "'", "Document");
            var builder = new OpenQA.Selenium.Interactions.Actions(_driver);
            builder.MoveToElement(element, offsetX, offsetY).Perform();
        }
        public void MouseMoveToElement(IWebElement element, int offsetX, int offsetY)
        {
            Trace.WriteLine("Move the mouse to the element '" + element + "'", "Document");
            var builder = new OpenQA.Selenium.Interactions.Actions(_driver);
            builder.MoveToElement(element, offsetX, offsetY).Perform();
        }

Отпустить кнопку мыши:

1
2
3
4
5
6
        public void MouseRelease()
        {
            Trace.WriteLine("Release the mouse button at the last known mouse coordinates", "Document");
            var builder = new OpenQA.Selenium.Interactions.Actions(_driver);
            builder.Release().Perform();
        }
        public void MouseRelease()
        {
            Trace.WriteLine("Release the mouse button at the last known mouse coordinates", "Document");
            var builder = new OpenQA.Selenium.Interactions.Actions(_driver);
            builder.Release().Perform();
        }