Сниппеты эмуляции мыши: FullEmulationMouse

luk911

Client
Регистрация
17.01.2013
Сообщения
1 542
Благодарностей
579
Баллы
113
C#:
int windheight = 800;
try {windheight=int.Parse(tab.MainDocument.EvaluateScript("return window.innerWidth;"));} catch{}
по умолчанию выставит 800, попытается выполнить скрипт и если будет ошибка то 800 так и останется
меня вот в этом куске смущает что вроде высота должна браться windheight, а берется ширина window.innerWidth;
все правильно ?

И еще не могу победить одну штуку - на сайте есть закрепленная шапка, которая перекрывает элемент, и соответственно надо когда прокручиваем вверх, прокручивать скажем на 100 px больше вверх. чтоб элемент в видимую зону попадал.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 789
Благодарностей
5 721
Баллы
113
меня вот в этом куске смущает что вроде высота должна браться windheight, а берется ширина window.innerWidth;
все правильно ?

И еще не могу победить одну штуку - на сайте есть закрепленная шапка, которая перекрывает элемент, и соответственно надо когда прокручиваем вверх, прокручивать скажем на 100 px больше вверх. чтоб элемент в видимую зону попадал.
да исправить надо. скролить то по высоте обычно надо
с шапками да, есть немного напряг.
 

kolina

Client
Регистрация
05.10.2019
Сообщения
165
Благодарностей
47
Баллы
28
Подскажите добрые люди, как открыть в новой вкладке?:
//Двигаем мышку на элемент на странице и кликаем
if (instance.ActiveTab.IsBusy) instance.ActiveTab.WaitDownloading();
var collect = instance.ActiveTab.FindElementsByAttribute("h3","innertext","{-Variable.Site_s_vidachi-}","text");
for (int i = 0; i < collect.Count; i++){
 var tmpelement = collect.GetByNumber(i);
 if ((int.Parse(tmpelement.GetAttribute("top"))<1)|(int.Parse(tmpelement.GetAttribute("left"))<25)){
 collect.Remove(i);
 i--;
 }
}
if (collect.Count==0) throw new Exception("no elements on page");
//return collect.Count;
var element = collect.GetByNumber(0);
instance.ActiveTab.FullEmulationMouseMoveToHtmlElement(element);
instance.ActiveTab.FullEmulationMouseClick("left", "click");
 

kolina

Client
Регистрация
05.10.2019
Сообщения
165
Благодарностей
47
Баллы
28
Ещё на 3 строчку ругается, но выполняется шаблон всё равно. Смысл, в чем: этот код находит необходимый элемент в выдаче Гугл, и делает клик. Но после клика открывается в этой же вкладке, потом следующий кубик гуляет по сайту рамдомное количество раз. В итоге нужно перейти на страницу выдачи, и это проблемма, потому что один раз шаблон перейдет на 3 страницы раза, а другой 7 страниц. Вернуться назад не получается, потому что не знаю на сколько страниц был совершен переход. Самый простой способ: открыть в новой вкладке.
 
Последнее редактирование:

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 789
Благодарностей
5 721
Баллы
113
"{-Variable.Site_s_vidachi-}" это макрос зенки. в c# это нельзя использовать надо так project.Variables["Site_s_vidachi"].Value
 
  • Спасибо
Реакции: kolina

kolina

Client
Регистрация
05.10.2019
Сообщения
165
Благодарностей
47
Баллы
28
Спасибо! А может подскажете, что в коде изменить, что бы при клике, открылась новая вкладка
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 789
Благодарностей
5 721
Баллы
113
Спасибо! А может подскажете, что в коде изменить, что бы при клике, открылась новая вкладка
я такого не знаю способа. если нужна страница гугла, то перед кликом можно URL запоминать и потом переходить на него
 
  • Спасибо
Реакции: kolina

luk911

Client
Регистрация
17.01.2013
Сообщения
1 542
Благодарностей
579
Баллы
113
правый клик надо делать и открыть в новой вкладке, но через C# врядли .. хотя может кто и знает.
 
  • Спасибо
Реакции: kolina

Rooter85

Client
Регистрация
04.07.2015
Сообщения
244
Благодарностей
64
Баллы
28
я такого не знаю способа. если нужна страница гугла, то перед кликом можно URL запоминать и потом переходить на него
Можно не запоминать а возвращаться назад tab.GoBack(); или если для приведенного кода instance.ActiveTab.GoBack();
 
  • Спасибо
Реакции: brun0 и kolina

kolina

Client
Регистрация
05.10.2019
Сообщения
165
Благодарностей
47
Баллы
28
Если бы я знал, сколько моя гулялка просмотрит страниц, то на такое количество и сделал бы возврат назад. Но беда в том что может 2, а может 5, а может по одной ссылке перейдёт, а последующие откроются в новой вкладке. Спасибо всем кто откликнулся на просьбу помоч.
 

DocSpoc

Client
Регистрация
04.01.2016
Сообщения
287
Благодарностей
169
Баллы
43
Двойной клик левой:
C#:
tab.FullEmulationMouseClick("left", "click");
tab.FullEmulationMouseClick("left", "click");
Не срабатывает двойной клик в Instagram. Должен быть лайк, если даблклик по картинке, но лайк не появляется :(

Знает кто нибудь как это решить?
 

ezotonal

Client
Регистрация
13.01.2014
Сообщения
819
Благодарностей
231
Баллы
43

DocSpoc

Client
Регистрация
04.01.2016
Сообщения
287
Благодарностей
169
Баллы
43

ezotonal

Client
Регистрация
13.01.2014
Сообщения
819
Благодарностей
231
Баллы
43

DocSpoc

Client
Регистрация
04.01.2016
Сообщения
287
Благодарностей
169
Баллы
43

ezotonal

Client
Регистрация
13.01.2014
Сообщения
819
Благодарностей
231
Баллы
43
Это тоже не срабатывает.
Место - лента Instagram.
Делаю рандомный лайк нескольких постов...

Так что то не пойму, а зачем двойной клик то? За 1 клик происходит лайк или ты хочешь за двойной клик поставить 2 два лайка...так вот то и происходит у тебя ....ты двойным кликом ставишь и сразу же убираешь лайк так то вторым нажатием... сделай циклом...два цикла рандомный лайк или последовательный
 

DocSpoc

Client
Регистрация
04.01.2016
Сообщения
287
Благодарностей
169
Баллы
43
Так что то не пойму, а зачем двойной клик то? За 1 клик происходит лайк или ты хочешь за двойной клик поставить 2 два лайка...так вот то и происходит у тебя ....ты двойным кликом ставишь и сразу же убираешь лайк так то вторым нажатием... сделай циклом...два цикла рандомный лайк или последовательный
Если нажимать сердечко, то да - один раз надо кликать.
Но там в ленте этих сердечек очень много (часть к постам, часть к комментариям) и я не могу понять как "отловить" нужные мне.
Но можно делать двойной клик по самой картинке и он тоже превращается в лайк. Так вот с этим то двойным кликом у меня и не получается. Оба предложенных выше варианта пробовал и оба не срабатывают((
 

xDESTROYx

Client
Регистрация
21.09.2019
Сообщения
224
Благодарностей
36
Баллы
28
Ребят, а можно сделать типа:
C#:
tance.ActiveTab.FullEmulationMouseWheel(rnd.Next(100,500), 5, rnd.Next(5,10));
нужна рандомная перемотка страницы
 

Valandersi

Client
Регистрация
19.01.2015
Сообщения
1 935
Благодарностей
1 123
Баллы
113
  • Спасибо
Реакции: LaGir и xDESTROYx

xDESTROYx

Client
Регистрация
21.09.2019
Сообщения
224
Благодарностей
36
Баллы
28
C#:
FullEmulationMouseWheel(rnd.Next(100,500), rnd.Next(100,500));
Спасибо, только что то не работает) я в кубике не силен, осваиваю.

вот такой статичный вариант работает:
C#:
instance.ActiveTab.FullEmulationMouseWheel(0,500);
А ваш рандом вариант нет
 

Valandersi

Client
Регистрация
19.01.2015
Сообщения
1 935
Благодарностей
1 123
Баллы
113
Спасибо, только что то не работает) я в кубике не силен, осваиваю.

вот такой статичный вариант работает:
C#:
instance.ActiveTab.FullEmulationMouseWheel(0,500);
А ваш рандом вариант нет
C#:
var rnd = new Random();
instance.ActiveTab.FullEmulationMouseWheel(rnd.Next(0,500),rnd.Next(0,500));
 
  • Спасибо
Реакции: silom2000 и xDESTROYx

xDESTROYx

Client
Регистрация
21.09.2019
Сообщения
224
Благодарностей
36
Баллы
28
  • Спасибо
Реакции: Valandersi

xDESTROYx

Client
Регистрация
21.09.2019
Сообщения
224
Благодарностей
36
Баллы
28
C#:
var rnd = new Random();

var tab = instance.ActiveTab;
//Ищем элемент
var div = tab.FindElementByAttribute("a", "outerhtml", "card-image-view__clickable", "text", 0);
//Наводим на него мышку
tab.FullEmulationMouseMoveToHtmlElement(div);
Ребят, подскажите как передать рандомное значение вместо "0" что бы мышка наводилась не только на первое совпадение но и на любое другое, желательно после чего кликала
 

Koqpe

Client
Регистрация
23.12.2014
Сообщения
1 099
Благодарностей
648
Баллы
113
Ребят, подскажите как передать рандомное значение вместо "0" что бы мышка наводилась не только на первое совпадение но и на любое другое, желательно после чего кликала
Скорей всего правильней будет не просто подставлять рандомное значение вместо 0, а собирать коллекцию элементов по заданному атрибуту и рандомно выбирать элемент для клика.
 
  • Спасибо
Реакции: xDESTROYx

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 991
Благодарностей
4 457
Баллы
113
var div = tab.FindElementByAttribute("a", "outerhtml", "card-image-view__clickable", "text", rnd.Next(0, tab.FindElementsByAttribute("a", "outerhtml", "card-image-view__clickable", "text").Count));
 

ezotonal

Client
Регистрация
13.01.2014
Сообщения
819
Благодарностей
231
Баллы
43
C#:
var rnd = new Random();

var tab = instance.ActiveTab;
//Ищем элемент
var div = tab.FindElementByAttribute("a", "outerhtml", "card-image-view__clickable", "text", 0);
//Наводим на него мышку
tab.FullEmulationMouseMoveToHtmlElement(div);
Ребят, подскажите как передать рандомное значение вместо "0" что бы мышка наводилась не только на первое совпадение но и на любое другое, желательно после чего кликала

Открываю секрет как делать):
var tab = instance.ActiveTab;
//Ищем элемент
var div = tab.FindElementByAttribute("a", "outerhtml", "card-image-view__clickable", "text", "random");
//Наводим на него мышку
tab.FullEmulationMouseMoveToHtmlElement(div);
 

zhenya777

Client
Регистрация
21.11.2018
Сообщения
264
Благодарностей
53
Баллы
28
Подскажите, как установить курсор в видимую область?
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 789
Благодарностей
5 721
Баллы
113
  • Спасибо
Реакции: zhenya777

Parkho

Client
Регистрация
20.06.2014
Сообщения
131
Благодарностей
16
Баллы
18
Заметил, что не всегда срабатывает FullEmulationMouseWheel, бывает затык и визуально не мотается страница. В то же время MouseWheel нормально срабатывает. И после того, как дернули страницу через MouseWheel хотя бы на 1 пиксель, начинает работать и FullEmulationMouseWheel. Как победить?
 

Fedor5588

Client
Регистрация
04.06.2017
Сообщения
318
Благодарностей
73
Баллы
28
Каким образом можно настроить исключение, чтобы не кликало на рекламу. Просто иногда когда по хпатч присходит клик скрипт отрабатывает и может кликнуть рекламу. а этого нам не надо
 

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