Не удаётся разобраться с FullEmulationMouseMoveAboveHtmlElement

Siegfried

Client
Регистрация
04.04.2016
Сообщения
23
Благодарностей
6
Баллы
3
Помогите, пожалуйста, разобраться в следующем. Нахожу видимые элементы на страницы и пытаюсь последовательно (от одного к другому) по ним вести мышкой через функцию FullEmulationMouseMoveAboveHtmlElement. Но на большинстве сайтов это не срабатывает. А точнее мышка идёт не последовательно, а для каждого следующего элемента начинает движение не от предыдущего, а с верху экрана и не до элемента, а до низа видимой области экрана. Как это можно исправить? Шаблон во вложении.
 

Вложения

  • 13,9 КБ Просмотры: 65

Siegfried

Client
Регистрация
04.04.2016
Сообщения
23
Благодарностей
6
Баллы
3
Пробовал через координаты вести мышку - результат тот же.

//Находим координату середины поля по x
int toX = int.Parse(elText.GetAttribute("leftInBrowser")) + elText.Width/2;
//Находим координату середины поля по y
int toY = int.Parse(elText.GetAttribute("topInBrowser")) + elText.Height/2;
//Ведём мышь к найденным координатам
tab.FullEmulationMouseMove(toX, toY);

Пробовал и в PM и в ZP. Пробовал на разных версиях ZP 7.

На простых сайтах вроде https://lessons.zennolab.com/en/index скрипт работает,но на сложных мышка тянется сверху экрана почему то. Проблема видимо в сайтах, но не могу понять как исправить.
 

volody00

Client
Регистрация
06.09.2016
Сообщения
918
Благодарностей
953
Баллы
93
у меня вроде нормально работает, никуда вверх не убегает. если ты хочешь читать по порядку сверху-вниз, то xpath менять надо
 

volody00

Client
Регистрация
06.09.2016
Сообщения
918
Благодарностей
953
Баллы
93

Siegfried

Client
Регистрация
04.04.2016
Сообщения
23
Благодарностей
6
Баллы
3
записал видео, посмотри так у тебя или нет - https://disk.yandex.ru/i/FfgZSiXmUsv2ig
Спасибо, что стараетесь помочь! Если промотать страницу вниз руками или скриптом, а затем запустить выполнение кубика - то да, он работает как надо, как у вас в видео. Но если выполнять проект с начала, то мышка не проматывает страницу вниз и соответственно не дотягивается до элементов + начинает движение к каждому элементу сверху экрана почему то.

Я решил для себя эту проблему на данный момент прокруткой до координат элемента через FullEmulationMouseWheel, но хотелось бы понять почему не работает без принудительной прокрутки.

Вот как это выглядит https://disk.yandex.ru/i/-KHOyvAo_PJQPQ
 
Последнее редактирование:

volody00

Client
Регистрация
06.09.2016
Сообщения
918
Благодарностей
953
Баллы
93
Спасибо, что стараетесь помочь! Если промотать страницу вниз руками или скриптом, а затем запустить выполнение кубика - то да, он работает как надо, как у вас в видео. Но если выполнять проект с начала, то мышка не проматывает страницу вниз и соответственно не дотягивается до элементов + начинает движение к каждому элементу сверху экрана почему то.

Я решил для себя эту проблему на данный момент прокруткой до координат элемента через FullEmulationMouseWheel, но хотелось бы понять почему не работает без принудительной прокрутки.

Вот как это выглядит https://disk.yandex.ru/i/-KHOyvAo_PJQPQ
если добавить закрытие всплывающего окна
C#:
Thread.Sleep(15000);
tab.FullEmulationMouseMoveToHtmlElement(tab.FindElementByXPath("//div[@id='bannerPopupNY']/div/span", 0));
tab.FullEmulationMouseClick("left", "click");
Thread.Sleep(3000);
то в хроме будет нормально работать. А вот в файрфоксе всё равно плохо. почему не знаю.
 

rastvl

Client
Команда форума
Регистрация
16.01.2019
Сообщения
656
Благодарностей
1 061
Баллы
93
но хотелось бы понять почему не работает без принудительной прокрутки.
Возможно элемент, который вы ищете, динамически подгружается во время прокрутки страницы
 

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