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

Клик по координатам в Selenide Webdriver Java

selenide
java
Теги: #<Tag:0x00007f7b697c3710> #<Tag:0x00007f7b697c35d0>

(Сержан Есенбек) #1

Привет всем
как можно кликать по координатам

код страницы

надо нажать суда

вот мой код


(Алексей Бобруцков) #2

Я думаю Вам просто нужно кликнуть в TestDocument.docx со смещением , Вам поможет класс Actions и методы moveToElement() в параметры которого передать смещение относительно центра элемента и после мува сделать клик
moveToElement(ele, Xoffset, Yoffset).click().build().perform();


(Сержан Есенбек) #3

можно пример кода ? если не трудно


(Алексей Бобруцков) #4

WebElement ele = driver.findElement(By.xpath(“ЭЛЕМЕНТ ПО КОТОРОМУ НАДО КЛИКНУТЬ”);
Actions action = new Actions(driver);
action.moveToElement(ele, Xoffset, Yoffset).click().build().perform();


(Dmitrii Demin) #5

    Selenide.actions()
        .moveToElement(element, xOffset, yOffset)
        .click();

(Сержан Есенбек) #6

не получается (((


(Алексей Бобруцков) #7

Может с координатами путаете?


(Алексей Бобруцков) #8

.perform(); забыли


(Евгений Салмин) #9

А разве в последних Selenium/Selenide Actions работают?


(Dmitrii Demin) #10

И правда, спасибо) Сам не пользуюсь таким механизмом просто)


(Сержан Есенбек) #11

получалось кликать

WebElement ele = ($(by(“class” ,“x-btn-split”),1));
Selenide.actions().moveToElement(ele, 5, 15 ).click().build().perform();

но у меня вопрос есть , как найти xoffset and yoffset ?
нету никаких утилиты ?
или руками надо находить ? рандомно


(Алексей Бобруцков) #12

ну почему рандомно то? попробуй пару значений, там делов на две минуты


(Алексей Бобруцков) #13

в Selenium 3.0 вроде пока нет, я сам пока сижу на старом Selenide 3.18 вроде


(Сержан Есенбек) #14

все получилось )))

int adw;
for (adw=0; adw<200; adw++) {
Selenide.actions().moveToElement(ele , adw, 1 ).click().build().perform();
System.out.println(adw);
pause(2000);

    }

и в конечном итоге получилось так
Selenide.actions().moveToElement(ele , 115, 1 ).click().build().perform();


(Ramon Menezes) #15
  1. с подобным кодом будут проблемы в ИЕ и при условии смены разрешения монитора на котором запускается тест
  2. может вы просто не нашли локатор той пимпочки (дропдауна возле имени дока) ?

(Алексей Бобруцков) #16

Возможно, действительно стоит поискать нужный локатор


(Сержан Есенбек) #17

каким локаторами вы пользуйтесь ?
и как обычно ищете локатор ?


(Алексей Бобруцков) #18

икпас всегда, ну не считая тех случаев когда можно напрямую айди, обычно ищу через девтулы хрома, ничего лучне не придумали))