Зажать ЛКМ, и сдвинуть мышь

bookray

Client
Регистрация
14.07.2015
Сообщения
10
Благодарностей
2
Баллы
3
Здравствуйте, уважаемые

Есть задача, нужно сдвигать ползунок на странице. Может кто подсказать сниппет, которым можно зажать лкм и сдвинуть мышку на пикселей 20?
 

Санёк

Client
Регистрация
30.08.2013
Сообщения
325
Благодарностей
112
Баллы
43
drag and drop

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

copper12

Client
Регистрация
26.11.2016
Сообщения
1 111
Благодарностей
260
Баллы
63

maxtor1986

Client
Регистрация
25.12.2015
Сообщения
14
Благодарностей
0
Баллы
1
Ребята, кто в c# шарит, подскажите, как это реализовать в коде. Я то увидел код, а как это в зенку всунуть. Могли бы то из спецов написать это в коде как вставить в зенку? Т.е. как-то так:
variable x = координаты x;
variable y = координаты y;
и далее движение с зажатой кнопкой

Буду очень благодарен и с почетом к Вашим знаниям.
 

gevolushn

Известная личность
Регистрация
25.03.2019
Сообщения
518
Благодарностей
270
Баллы
63
Ребята, кто в c# шарит, подскажите, как это реализовать в коде. Я то увидел код, а как это в зенку всунуть. Могли бы то из спецов написать это в коде как вставить в зенку? Т.е. как-то так:
variable x = координаты x;
variable y = координаты y;
и далее движение с зажатой кнопкой

Буду очень благодарен и с почетом к Вашим знаниям.
DragAndDrop
Код:
//находим элемент, с которым будем работать
HtmlElement he = instance.ActiveTab.FindElementById("SIvCob");
//проверяем, существует ли элемент
if (he.IsVoid){
    //если нет, то кубик уйдет по красной ветке с сообщением ниже
    throw new Exception("Нет нужного элемента");
}

//перемнные для координат элемента
int x = Convert.ToInt32(he.GetAttribute("leftInTab"));
int y = Convert.ToInt32(he.GetAttribute("topInTab"));

//переменные ширины и высоты элемента
int width = Convert.ToInt32(he.GetAttribute("clientWidth"));
int height = Convert.ToInt32(he.GetAttribute("clientHeight"));

//зажимаем мышь в начальных координатах x-5:y+5 и перетаскиваем до конца элемента
instance.ActiveTab.FullEmulationMouseDragAndDrop(x - 5, y + 5, x + width + 1, y + 5);
MouseDown, MouseUp
Код:
//находим элемент, с которым будем работать
HtmlElement he = instance.ActiveTab.FindElementById("SIvCob");
//проверяем, существует ли элемент
if (he.IsVoid){
    //если нет, то кубик уйдет по красной ветке с сообщением ниже
    throw new Exception("Нет нужного элемента");
}

//перемнные для координат элемента
int x = Convert.ToInt32(he.GetAttribute("leftInTab"));
int y = Convert.ToInt32(he.GetAttribute("topInTab"));

//переменные ширины и высоты элемента
int width = Convert.ToInt32(he.GetAttribute("clientWidth"));
int height = Convert.ToInt32(he.GetAttribute("clientHeight"));

//двигаем мышку к началу элемента
instance.ActiveTab.FullEmulationMouseMove(x - 1, y + 5);
//делаем случайную пазу перед нажатием от 0,5 секунды до 1й
System.Threading.Thread.Sleep(Global.Classes.rnd.Next(500, 1000));
//зажимаем левую кнопку мыши
instance.ActiveTab.FullEmulationMouseClick("left", "down");
//двигаем мышь к концу элемента
instance.ActiveTab.FullEmulationMouseMove(x + width + 1, y + 5);
//делаем случайную пазу перед нажатием от 0,5 секунды до 1й
System.Threading.Thread.Sleep(Global.Classes.rnd.Next(500, 1000));
//отпускаем ЛКМ
instance.ActiveTab.FullEmulationMouseClick("left", "up");
Получить нужный элемент можно так:
4.png
Потом нужно вытянуть из скопированного в буфер кода вторую строчку:
5.png
И заменить ею похожую в коде выше.
 
Последнее редактирование:

art22

Client
Регистрация
24.06.2016
Сообщения
504
Благодарностей
76
Баллы
28
а как сделать клик по координатам и держать скажем 30 секунд потом отпустить
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
21 929
Благодарностей
9 739
Баллы
113
  • Спасибо
Реакции: art22 и djaga

art22

Client
Регистрация
24.06.2016
Сообщения
504
Благодарностей
76
Баллы
28

djaga

Administrator
Команда форума
Регистрация
26.04.2020
Сообщения
564
Благодарностей
1 146
Баллы
93
не сработал там ID постоянно меняется и не к чему закрепиться по этому клик по координатам нужен
Клик по координатам с задержкой 5 сек:
// мышь по координатам
instance.ActiveTab.FullEmulationMouseMove(500, 480);
// клик с зажатием 5сек
instance.ActiveTab.FullEmulationMouseClick("left", "down");
Thread.Sleep(5 * 1000);
instance.ActiveTab.FullEmulationMouseClick("left", "up");
Ниже приложил шаблон для примера ↓
 

Вложения

санчил

Client
Регистрация
15.04.2016
Сообщения
342
Благодарностей
60
Баллы
28
DragAndDrop
Код:
//находим элемент, с которым будем работать
HtmlElement he = instance.ActiveTab.FindElementById("SIvCob");
//проверяем, существует ли элемент
if (he.IsVoid){
    //если нет, то кубик уйдет по красной ветке с сообщением ниже
    throw new Exception("Нет нужного элемента");
}

//перемнные для координат элемента
int x = Convert.ToInt32(he.GetAttribute("leftInTab"));
int y = Convert.ToInt32(he.GetAttribute("topInTab"));

//переменные ширины и высоты элемента
int width = Convert.ToInt32(he.GetAttribute("clientWidth"));
int height = Convert.ToInt32(he.GetAttribute("clientHeight"));

//зажимаем мышь в начальных координатах x-5:y+5 и перетаскиваем до конца элемента
instance.ActiveTab.FullEmulationMouseDragAndDrop(x - 5, y + 5, x + width + 1, y + 5);
MouseDown, MouseUp
Код:
//находим элемент, с которым будем работать
HtmlElement he = instance.ActiveTab.FindElementById("SIvCob");
//проверяем, существует ли элемент
if (he.IsVoid){
    //если нет, то кубик уйдет по красной ветке с сообщением ниже
    throw new Exception("Нет нужного элемента");
}

//перемнные для координат элемента
int x = Convert.ToInt32(he.GetAttribute("leftInTab"));
int y = Convert.ToInt32(he.GetAttribute("topInTab"));

//переменные ширины и высоты элемента
int width = Convert.ToInt32(he.GetAttribute("clientWidth"));
int height = Convert.ToInt32(he.GetAttribute("clientHeight"));

//двигаем мышку к началу элемента
instance.ActiveTab.FullEmulationMouseMove(x - 1, y + 5);
//делаем случайную пазу перед нажатием от 0,5 секунды до 1й
System.Threading.Thread.Sleep(Global.Classes.rnd.Next(500, 1000));
//зажимаем левую кнопку мыши
instance.ActiveTab.FullEmulationMouseClick("left", "down");
//двигаем мышь к концу элемента
instance.ActiveTab.FullEmulationMouseMove(x + width + 1, y + 5);
//делаем случайную пазу перед нажатием от 0,5 секунды до 1й
System.Threading.Thread.Sleep(Global.Classes.rnd.Next(500, 1000));
//отпускаем ЛКМ
instance.ActiveTab.FullEmulationMouseClick("left", "up");
Получить нужный элемент можно так:
Посмотреть вложение 38787
Потом нужно вытянуть из скопированного в буфер кода вторую строчку:
Посмотреть вложение 38788
И заменить ею похожую в коде выше.
привет ! а как сделать поиск по XPath ?
 

Moonwalker

Client
Регистрация
16.03.2016
Сообщения
1 861
Благодарностей
1 485
Баллы
113
  • Спасибо
Реакции: санчил и backoff

санчил

Client
Регистрация
15.04.2016
Сообщения
342
Благодарностей
60
Баллы
28

olegbez007

Client
Регистрация
02.11.2022
Сообщения
236
Благодарностей
42
Баллы
28
При регистрации почты Аутлук этот способ не хочет работать. Есть решение?
 

Вложения

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
21 929
Благодарностей
9 739
Баллы
113

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