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

  • Автор темы Автор темы Siegfried
  • Дата начала Дата начала

Siegfried

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

Вложения

  • test.zp
    test.zp
    13,9 KB · Просмотры: 137
Пробовал через координаты вести мышку - результат тот же.

//Находим координату середины поля по 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 скрипт работает,но на сложных мышка тянется сверху экрана почему то. Проблема видимо в сайтах, но не могу понять как исправить.
 
записал видео, посмотри так у тебя или нет - https://disk.yandex.ru/i/FfgZSiXmUsv2ig
Спасибо, что стараетесь помочь! Если промотать страницу вниз руками или скриптом, а затем запустить выполнение кубика - то да, он работает как надо, как у вас в видео. Но если выполнять проект с начала, то мышка не проматывает страницу вниз и соответственно не дотягивается до элементов + начинает движение к каждому элементу сверху экрана почему то.

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

Вот как это выглядит https://disk.yandex.ru/i/-KHOyvAo_PJQPQ
 
Последнее редактирование:
Спасибо, что стараетесь помочь! Если промотать страницу вниз руками или скриптом, а затем запустить выполнение кубика - то да, он работает как надо, как у вас в видео. Но если выполнять проект с начала, то мышка не проматывает страницу вниз и соответственно не дотягивается до элементов + начинает движение к каждому элементу сверху экрана почему то.

Я решил для себя эту проблему на данный момент прокруткой до координат элемента через 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);
то в хроме будет нормально работать. А вот в файрфоксе всё равно плохо. почему не знаю.
 
но хотелось бы понять почему не работает без принудительной прокрутки.
Возможно элемент, который вы ищете, динамически подгружается во время прокрутки страницы
 

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