Телепортация мыши при эмуляции движения C#

Регистрация
23.03.2015
Сообщения
1 218
Благодарностей
751
Баллы
113
Эмулирую движение и клик мышью этим кодом:
Код:
int topinbrowser = Convert.ToInt32(project.Variables["top"].Value);
int leftinbrowser = Convert.ToInt32(project.Variables["left"].Value);
instance.ActiveTab.FullEmulationMouseMove(leftinbrowser, topinbrowser);
instance.ActiveTab.FullEmulationMouseClick("left", "click");
классный код, но после наведения на ссылку и клика, на вновь загруженной странице движение мыши идёт с произвольного места а не с того места где был совершён клик. не пойму как исправить
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
Эмулирую движение и клик мышью этим кодом:
Код:
int topinbrowser = Convert.ToInt32(project.Variables["top"].Value);
int leftinbrowser = Convert.ToInt32(project.Variables["left"].Value);
instance.ActiveTab.FullEmulationMouseMove(leftinbrowser, topinbrowser);
instance.ActiveTab.FullEmulationMouseClick("left", "click");
классный код, но после наведения на ссылку и клика, на вновь загруженной странице движение мыши идёт с произвольного места а не с того места где был совершён клик. не пойму как исправить
Можно использовать эти методы:
https://zennolab.com/wiki/ru:virtual_mouse?s[]=fullemulationmousemovetohtmlelement

upload_2018-9-9_15-51-1.png
 
  • Спасибо
Реакции: Koschei и KolkaPetkinSyn
Регистрация
23.03.2015
Сообщения
1 218
Благодарностей
751
Баллы
113
Как плохо быть валенком(
Почитал, посмотрел примеры, но всё равно не до конца понял.
Если добавить в код 'return instance.ActiveTab.FullEmulationMouseCurrentPosition;', то после клика по элементу мышка вернется на первоначальное место. Я правильно понял?
А так работает это 'FullEmulationMouseSetOptions' я не понял
Если не сложно, пожалуйста поясните
 
Регистрация
23.03.2015
Сообщения
1 218
Благодарностей
751
Баллы
113
На деле оказалось все наоборот,
'FullEmulationMouseSetOptions' с этим кодом разобрался быстро, он отвечает за скорость и плавность перемещений мышь
'return instance.ActiveTab.FullEmulationMouseCurrentPosition;' Что делает этот код ума не приложу, при его добавлении ничего не меняется.
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
На деле оказалось все наоборот,
'FullEmulationMouseSetOptions' с этим кодом разобрался быстро, он отвечает за скорость и плавность перемещений мышь
'return instance.ActiveTab.FullEmulationMouseCurrentPosition;' Что делает этот код ума не приложу, при его добавлении ничего не меняется.
Он возвращает текущие координаты курсора мыши, спарсив из ответа координаты, можно привести курсор в эти координаты на обновленной странице.
 
  • Спасибо
Реакции: KolkaPetkinSyn
Регистрация
23.03.2015
Сообщения
1 218
Благодарностей
751
Баллы
113
Спасибо большое, как раз только что сам додумался. На страницу справки нужно добавить ваше пояснение, в действующем описании не хватает уточнения, что возвращается координаты положения мыши.
При помощи данной функции заметил интересный момент, если мышь просто перемещать на нужный мне элемент возвращается правильный координаты этого элемента, а если в код добавить ещё и Клик по этому элементу, то после клика мышка телепортируется на координаты 0;217 Может кто с таким сталкивался?

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

Koqpe

Client
Регистрация
23.12.2014
Сообщения
1 100
Благодарностей
649
Баллы
113
Регистрация
23.03.2015
Сообщения
1 218
Благодарностей
751
Баллы
113

Koqpe

Client
Регистрация
23.12.2014
Сообщения
1 100
Благодарностей
649
Баллы
113
на два раза прочитал, не нашёл решения. ни то как получить координаты мыши относительно экрана
2018-09-10_19-22-30 (2).png

не почему мышь улетает после клика
Если после клика был Navigate, мышь "улетает", поэтому после загрузки страницы используйте опять FullEmulationMouseMove - Переместить виртуальную мышь к координатам из текущего положения виртуальной мыши или FullEmulationMouseMoveToHtmlElement - Переместить виртуальную мышь к элементу из текущего положения виртуальной мыши.
 
Регистрация
23.03.2015
Сообщения
1 218
Благодарностей
751
Баллы
113
Если после клика был Navigate,
Это что?

к примеру, клик был в координаты х=170, у=8835 и как туда вернуть если на следующая страница всего 5000 выстой, да и если хватит высоты, будет скрол в низ
 

Вложения

Koqpe

Client
Регистрация
23.12.2014
Сообщения
1 100
Благодарностей
649
Баллы
113
Метод навигации, если в кубиках то "Переход на другую страницу".
к примеру, клик был в координаты х=170, у=8835 и как туда вернуть если на следующая страница всего 5000 выстой, да и если хватит высоты, будет скрол в низ
Привязывайтесь к какому то элементу, например в верху страницы и скрольте до нужного места методом FullEmulationMouseWheel
https://zennolab.com/discussion/threads/snippety-ehmuljacii-myshi-fullemulationmouse.35369/#post-326892
 
  • Спасибо
Реакции: LaGir
Регистрация
23.03.2015
Сообщения
1 218
Благодарностей
751
Баллы
113
Метод навигации, если в кубиках то "Переход на другую страницу".

Привязывайтесь к какому то элементу, например в верху страницы и скрольте до нужного места методом FullEmulationMouseWheel
https://zennolab.com/discussion/threads/snippety-ehmuljacii-myshi-fullemulationmouse.35369/#post-326892
Вы меня не поняли.
Допустим мышка кликает на ссылку в нижней части страницы, при этом она располагается в нижнем правом углу экрана( не страницы, а именно экрана). После того как новая страница загрузилась и совершается движение мыши, мышь начинает свое движение не из нижнего правого угла экрана( где она находилась в момент клика), а из верхнего левого. При просмотре этих действий в Вебвизоре это очень сильно режет глаз
 

LaGir

Client
Регистрация
01.10.2015
Сообщения
227
Благодарностей
927
Баллы
93
Допустим мышка кликает на ссылку в нижней части страницы, при этом она располагается в нижнем правом углу экрана( не страницы, а именно экрана). После того как новая страница загрузилась и совершается движение мыши, мышь начинает свое движение не из нижнего правого угла экрана( где она находилась в момент клика), а из верхнего левого. При просмотре этих действий в Вебвизоре это очень сильно режет глаз
Какая у вас установлена версия ZennoPoster? В последних версиях с этим проблем нет, хотя в более старых было так, как вы описали.
Если версия стоит старая и нет возможности обновиться, можно после клика устанавливать координаты обратно следующим кодом.
C#:
instance.ActiveTab.FullEmulationMouseCurrentPosition = new Point(leftinbrowser, topinbrowser);
Но, опять же, эту возможность добавляли тоже не слишком давно (когда именно неизвестно, в чейнджлоге к сожалению не указывали), в слишком старых версиях может не работать.

Если версия ZP последняя - попробуйте воспроизвести проблему на других сайтах. Если там то же самое - нужно сделать диагностику и скинуть отчёт разработчикам.
 
  • Спасибо
Реакции: luk911

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)