Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Каким образом можно кликнуть по нижнему правому краю элемемента?

java
selenium
webdriver
Теги: #<Tag:0x00007f7b6a2fa688> #<Tag:0x00007f7b6a2fa4f8> #<Tag:0x00007f7b6a2fa0c0>

(Артем Хоружий) #1

Насколько знаю, клик происходит по верхнему левому углу элемента. Есть ли способ кликнуть по нижнему правому углу?


(Alexandr D.) #2
DriverManager.Driver.Actions().MoveToElement(ele, 333, 666);
DriverManager.Driver.Actions().Click();

java:

Actions builder = new Actions(driver);   
builder.moveToElement(knownElement, 10, 25).click().build().perform();

Вам надо только посчитать координаты


(Артем Хоружий) #3

То есть по правому нижнему углу будет так?

actions.moveToElement(item,
item.getLocation().getX() + item.getSize().getWidth(),
item.getLocation().getY() + item.getSize().getHeight()).
click().build().perform();


(Alexandr D.) #4

Если я не ошибаюсь, то там по умолчанию считается от левого верхнего угла. Но не знаю как в java.

Если указать что считаем от центра, то если мне память не изменяет будет так:

DriverManager.Driver.Actions().MoveToElement(ele, width / 2 - 1, 1 - height / 2, MoveToElementOffsetOrigin.Center).Build().Perform();

Единицы я специально написал, т.к. в C# округляется значение. Например ширина у элемента на самом деле 68.8, а в свойстве хранится 69.