Перейти к содержимому

Фотография

Присвоение элементу нужных координат

Selenium Webdriver

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 6

#1 Alemix

Alemix

    Новый участник

  • Members
  • Pip
  • 34 сообщений
  • ФИО:Герасимов Алексей Михайлович

Отправлено 14 декабря 2018 - 13:29

Здравствуйте. Хочу сделать так, чтобы перед нажатием на элемент этот элемент отображался в середине экрана. Для этого, видимо, элементу нужно передать координату Y = половине экрана. Подскажите, пожалуйста, Селениум предоставляет такую возможность?


  • 0

#2 TatyanaV

TatyanaV

    Опытный участник

  • Members
  • PipPipPipPip
  • 388 сообщений
  • ФИО:Воробьева Татьяна


Отправлено 14 декабря 2018 - 13:38

Возможно, через JavascriptExecutor. 

В принципе, селениум и так "скроллит" до элементов, которые планирует кликать / заполнять.


  • 0

#3 Alemix

Alemix

    Новый участник

  • Members
  • Pip
  • 34 сообщений
  • ФИО:Герасимов Алексей Михайлович

Отправлено 14 декабря 2018 - 13:43

Нужно проскролить.

Селениум скролит до середины элемента, все, что ниже он не видит. Мне необходимо сделать так, чтобы был виден нижний (или верхний край элемента, зависит от того куда крутим), так как я не придумал как это сделать, решил, что нужно крутить до тех пор, пока элемент не будет в центре экрана.


  • 0

#4 TatyanaV

TatyanaV

    Опытный участник

  • Members
  • PipPipPipPip
  • 388 сообщений
  • ФИО:Воробьева Татьяна


Отправлено 14 декабря 2018 - 13:56

((JavascriptExecutor) driver).executeScript("window.scrollTo("+ element.getLocation().x + ", "+ element.getLocation().y + ")");

Ну и дальше уже регулируйте x / y, как Вам нужно.

 

Например: 

((JavascriptExecutor) driver).executeScript("window.scrollTo("+ (element.getLocation().x + 20) + ", " + (element.getLocation().y + 30) ")");


  • 0

#5 Alemix

Alemix

    Новый участник

  • Members
  • Pip
  • 34 сообщений
  • ФИО:Герасимов Алексей Михайлович

Отправлено 14 декабря 2018 - 14:24

У меня с экзекутором вечная беда. Добавил: ((JavascriptExecutor) driver).executeScript("window.scrollTo("+ (element.getLocation().x + 1) + ", " + (element.getLocation().y + 300) + ")");

но элементы не реагируют. 


  • 0

#6 Alemix

Alemix

    Новый участник

  • Members
  • Pip
  • 34 сообщений
  • ФИО:Герасимов Алексей Михайлович

Отправлено 14 декабря 2018 - 14:36

У Селениума есть свои методы, но они что-то тоже не хотят работать:

element.getLocation().move(700, 380);
element.getLocation().moveBy(700,380);


  • 0

#7 TatyanaV

TatyanaV

    Опытный участник

  • Members
  • PipPipPipPip
  • 388 сообщений
  • ФИО:Воробьева Татьяна


Отправлено 17 декабря 2018 - 05:29

У меня с экзекутором вечная беда. Добавил: ((JavascriptExecutor) driver).executeScript("window.scrollTo("+ (element.getLocation().x + 1) + ", " + (element.getLocation().y + 300) + ")");

но элементы не реагируют. 

А как они должны реагировать, по-Вашему?

Это скролл (чтобы Вы могли проскроллить так, как Вам нужно, если не устраивает стандартный скролл, который селениум сам делает.). Это не перенос элементов куда либо. 

Перенос элементов - вообще сомнительная идея. 


  • 0



Темы с аналогичным тегами Selenium Webdriver

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных