Как перетащить объект в браузере используя Selenium Webdriver?


В наше время все чаще веб приложения пишутся активно используя JavaScript и JQuery и бывает что в автотесте один обьект нужно перетащить в другое место на странице

Для таких случаев в 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 — это элемент поверхности

Подробнее изображено на рисунке:
Drag and Drop Selenium WebDriver

Также в классе Actions есть такие полезные методы как:

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


0 комментариев