Как перетащить объект в браузере используя Selenium Webdriver?
Для таких случаев в Selenium Webdriver существует класс Actions который в свою очередь имеет нужные нам методы DragAndDrop() и DragAndDropToOffset()
Для начала нам нужно 2 локатора: 1й — обьекта который нужно перетащить и 2й — локатор поверхности куда нужно этот объект перетащить
Для выполнения такой операции нам нужно написать:
var actions = new Actions(Driver);
var random = new Random();
int x = random.Next(-75, 75);
int y = random.Next(-75, 75);
actions.DragAndDrop(this.objectToDrag, this.fieldArea)
.DragAndDropToOffset(this.objectToDrag, x, y)
.Perform();
x и y — это координаты в пикселях поверности, куда именно нужно перетащить объект, расчитывается от центра (в данном случае высота и ширина задается рандомно, в пределах от -75 до 75)
this.objectToDrag — это элемент самого объекта
this.fieldArea — это элемент поверхности
Подробнее изображено на рисунке:

Также в классе Actions есть такие полезные методы как:
DoubleClick() — двойное нажатие кнопкой мыши
ClickAndHold() — нажимает и держит кнопку мыши
Release() — отпускает кнопку мыши
KeyDown() — нажатие клавиши вниз
KeyUp() — нажатие клавиши вверх
ContextClick() — нажатие правой клавишей мыши
0 комментариев