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

Как получить сгенерированный id элемента


(AzotKzn) #1

При определенных действиях у нас создается “Сущность” у который генерируется уникальный id (UUID). Как с помощью Java кода мы можем получить ее id, мы знаем лишь координаты где расположена эта “сущность”.

Буду благодарен если приведете пример сразу кода.


(Mykhailo Poliarush) #2

Задача сформулирована не полностью, без самого html не помочь. Приложите его на http://gist.github.com и дальше уже можно о чем нибудь говорить.

По координатам вы не найдете ваш элемент, а даже если и найдете, то в любом случае это будет очень нестабильное решение.

Надо использовать относительные элементы по отношению к искомому элементу и потом составлять более сложный и комплексный css или xpath


(Artur Korobeynyk) #3

На сколько я знаю, координаты в вебдрайвере могут зависеть от разрешения экрана. Но получить элемент по координатам всё же задача решаемая. Можно воспользоваться таким джаваскриптом:

bodyRect = document.body.getBoundingClientRect();
elemRect = element.getBoundingClientRect();
offset   = elemRect.top - bodyRect.top;

Либо:

function getOffset( el ) {
var _x = 0;
var _y = 0;
while( el && !isNaN( el.offsetLeft ) && !isNaN( el.offsetTop ) ) {
    _x += el.offsetLeft - el.scrollLeft;
    _y += el.offsetTop - el.scrollTop;
    el = el.offsetParent;
}
return { top: _y, left: _x };
}

Переберите все элементы страницы и сравните их офсеты с помощью какого-то из этих скриптов с входными данными и тот элемент офсет которого равняется офсету (координатам) вашых элементов с некоторой погрешностью будет вашим.