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

Nixens

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

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 328
Благодарностей
5 431
Баллы
113
Если не получается экшеном, то поможет эмулятор мыши.

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

Вложения

  • Спасибо
Реакции: Sergodjan

Rimen

Client
Регистрация
28.10.2019
Сообщения
405
Благодарностей
235
Баллы
43
Если не получается экшеном, то поможет эмулятор мыши.

Нужно создать 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
не подскажите как его в двойной перевести?
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 690
Баллы
113
не подскажите как его в двойной перевести?
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

Rimen

Client
Регистрация
28.10.2019
Сообщения
405
Благодарностей
235
Баллы
43
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");
наведение мыши вижу в инстансе. Двойной клик вижу в инстансе... но папка не открывается

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

daniilslep

Client
Регистрация
14.11.2018
Сообщения
29
Благодарностей
3
Баллы
3
Спасибо добрый человек!!!

странно, но есть нюанс: нужно в 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");
наведение мыши вижу в инстансе. Двойной клик вижу в инстансе... но папка не открывается

Не подскажете что делаю не так?
Такая же задача
Не нашли решение?
 

Rimen

Client
Регистрация
28.10.2019
Сообщения
405
Благодарностей
235
Баллы
43
Такая же задача
Не нашли решение?
К сожалению не нашел. Но решил иначе — зная как файл называется (ибо название всегда из переменной) мышкой кликаю одинарным кликом по названию файла (выделяю его), после чего через кнопку шаринга
62800


получаю ссылку на файл и работаю с этим.
Костыльно, но работает
 
  • Спасибо
Реакции: daniilslep

daniilslep

Client
Регистрация
14.11.2018
Сообщения
29
Благодарностей
3
Баллы
3
К сожалению не нашел. Но решил иначе — зная как файл называется (ибо название всегда из переменной) мышкой кликаю одинарным кликом по названию файла (выделяю его), после чего через кнопку шаринга
Посмотреть вложение 62800

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

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 328
Благодарностей
5 431
Баллы
113
Нашел в другой теме упоминание про 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

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