Как сделать двойной клик в зеннопостере?

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

Nixens

Client
Регистрация
18.02.2018
Сообщения
288
Реакции
7
Баллы
18
У меня есть область на странице, которая активируется двойным нажатием, в данном случае это выбор пользователя на скриншоте
upload_2018-3-7_9-30-33.png
Сайт выберет пользователя только тогда, когда будет двойное нажатие. Пытался строить всякие пирамиды, с разными атрибутами и ничего не получалось
upload_2018-3-7_9-31-47.png
 
Если не получается экшеном, то поможет эмулятор мыши.

Нужно создать 2 экшена для расчета позиции для клика. Инструкция есть внутри шаблона. Удачи!)
 

Вложения

  • Спасибо
Реакции: Sergodjan
Если не получается экшеном, то поможет эмулятор мыши.

Нужно создать 2 экшена для расчета позиции для клика. Инструкция есть внутри шаблона. Удачи!)
работает... но при использовании эмуляции мыши на C# подобно https://zennolab.com/discussion/threads/snippety-ehmuljacii-myshi-fullemulationmouse.35369/page-2 получается очень костыльно... т.е. навел мышку на нужное место на C# → сохранил Х и Y мышки в переменные → выполнил экшном из переменной....

итого 4 кубика. Если бы был код на C# с двойным кликом -- было бы кратно легче.
Есть такой одинарный:

C#:
Развернуть Свернуть Копировать
// Клик
//Кнопка мыши
// "left" - левая кнопка мыши
// "right" - правая кнопка мыши
// "middle" - колесико/средняя кнопка мыши
string button = "left";
//Действие
// "click" - обычный клик
// "down" - зажатие клавиши (зажимаем и держим)
// "up" - отжатие клавиши (отпускаем зажатую кнопку)
string mouseEvent = "click";

//Клик
instance.ActiveTab.FullEmulationMouseClick(button, mouseEvent);

// Примечание
//предварительно необходимо подвести мышь к нужному месту методом
//FullEmulationMouseMove или FullEmulationMouseMoveToHtmlElement

не подскажите как его в двойной перевести?
 
не подскажите как его в двойной перевести?
C#:
Развернуть Свернуть Копировать
//Клик
int abs_x = instance.ActiveTab.FullEmulationMouseCurrentPosition.X;
int abs_y = instance.ActiveTab.FullEmulationMouseCurrentPosition.Y;
instance.Click(abs_x, abs_x, abs_y, abs_y, "DoubleClick", "Normal");
 
  • Спасибо
Реакции: Rimen
C#:
Развернуть Свернуть Копировать
//Клик
int abs_x = instance.ActiveTab.FullEmulationMouseCurrentPosition.X;
int abs_y = instance.ActiveTab.FullEmulationMouseCurrentPosition.Y;
instance.Click(abs_x, abs_x, abs_y, abs_y, "DoubleClick", "Normal");
Спасибо добрый человек!!!

странно, но есть нюанс: нужно в g.drive открыть папку. Открывается по двойному клику.
Название папки в переменной host

выполняю такой код:

C#:
Развернуть Свернуть Копировать
// Поиск элемента по XPath
//Путь XPath до элемента

string xpath = "//div[text()='" + project.Variables["host"].Value + "']";
//Номер совпадения
int num = 0;

//Поиск элемента
var el = instance.ActiveTab.FindElementByXPath(xpath, num);
//Движение к элементу
instance.ActiveTab.FullEmulationMouseMoveToHtmlElement(el);

//Двойной клик
int abs_x = instance.ActiveTab.FullEmulationMouseCurrentPosition.X;
int abs_y = instance.ActiveTab.FullEmulationMouseCurrentPosition.Y;
instance.Click(abs_x, abs_x, abs_y, abs_y, "DoubleClick", "Normal");

наведение мыши вижу в инстансе. Двойной клик вижу в инстансе... но папка не открывается

Не подскажете что делаю не так?
 
Спасибо добрый человек!!!

странно, но есть нюанс: нужно в g.drive открыть папку. Открывается по двойному клику.
Название папки в переменной host

выполняю такой код:

C#:
Развернуть Свернуть Копировать
// Поиск элемента по XPath
//Путь XPath до элемента

string xpath = "//div[text()='" + project.Variables["host"].Value + "']";
//Номер совпадения
int num = 0;

//Поиск элемента
var el = instance.ActiveTab.FindElementByXPath(xpath, num);
//Движение к элементу
instance.ActiveTab.FullEmulationMouseMoveToHtmlElement(el);

//Двойной клик
int abs_x = instance.ActiveTab.FullEmulationMouseCurrentPosition.X;
int abs_y = instance.ActiveTab.FullEmulationMouseCurrentPosition.Y;
instance.Click(abs_x, abs_x, abs_y, abs_y, "DoubleClick", "Normal");

наведение мыши вижу в инстансе. Двойной клик вижу в инстансе... но папка не открывается

Не подскажете что делаю не так?

Такая же задача
Не нашли решение?
 
Такая же задача
Не нашли решение?
К сожалению не нашел. Но решил иначе — зная как файл называется (ибо название всегда из переменной) мышкой кликаю одинарным кликом по названию файла (выделяю его), после чего через кнопку шаринга
62800


получаю ссылку на файл и работаю с этим.
Костыльно, но работает
 
  • Спасибо
Реакции: daniilslep
К сожалению не нашел. Но решил иначе — зная как файл называется (ибо название всегда из переменной) мышкой кликаю одинарным кликом по названию файла (выделяю его), после чего через кнопку шаринга
Посмотреть вложение 62800

получаю ссылку на файл и работаю с этим.
Костыльно, но работает
Понял
Благодарю
 
Нашел в другой теме упоминание про dblclick. Причем в выпадающем меню конструктора его нету. Мистика!

Получаем код действия, и стандартный клик меняем на dblclick
C#:
Развернуть Свернуть Копировать
// Конструктор действий, тип RiseEvent

HtmlElement he = instance.ActiveTab.FindElementByAttribute("video", "fulltag", "video", "text", 0);

if (he.IsVoid) return -1;


// Задержка эмуляции

instance.WaitFieldEmulationDelay();

// Вызвать событие "click"

he.RiseEvent("dblclick", instance.EmulationLevel);
 
  • Спасибо
Реакции: Hannes

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