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

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

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

И еще не могу победить одну штуку - на сайте есть закрепленная шапка, которая перекрывает элемент, и соответственно надо когда прокручиваем вверх, прокручивать скажем на 100 px больше вверх. чтоб элемент в видимую зону попадал.
да исправить надо. скролить то по высоте обычно надо
с шапками да, есть немного напряг.
 
Подскажите добрые люди, как открыть в новой вкладке?:
Развернуть Свернуть Копировать
//Двигаем мышку на элемент на странице и кликаем
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");
 
Ещё на 3 строчку ругается, но выполняется шаблон всё равно. Смысл, в чем: этот код находит необходимый элемент в выдаче Гугл, и делает клик. Но после клика открывается в этой же вкладке, потом следующий кубик гуляет по сайту рамдомное количество раз. В итоге нужно перейти на страницу выдачи, и это проблемма, потому что один раз шаблон перейдет на 3 страницы раза, а другой 7 страниц. Вернуться назад не получается, потому что не знаю на сколько страниц был совершен переход. Самый простой способ: открыть в новой вкладке.
 
Последнее редактирование:
"{-Variable.Site_s_vidachi-}" это макрос зенки. в c# это нельзя использовать надо так project.Variables["Site_s_vidachi"].Value
 
  • Спасибо
Реакции: kolina
Спасибо! А может подскажете, что в коде изменить, что бы при клике, открылась новая вкладка
 
Спасибо! А может подскажете, что в коде изменить, что бы при клике, открылась новая вкладка
я такого не знаю способа. если нужна страница гугла, то перед кликом можно URL запоминать и потом переходить на него
 
  • Спасибо
Реакции: kolina
правый клик надо делать и открыть в новой вкладке, но через C# врядли .. хотя может кто и знает.
 
  • Спасибо
Реакции: kolina
я такого не знаю способа. если нужна страница гугла, то перед кликом можно URL запоминать и потом переходить на него
Можно не запоминать а возвращаться назад tab.GoBack(); или если для приведенного кода instance.ActiveTab.GoBack();
 
  • Спасибо
Реакции: brun0 и kolina
Если бы я знал, сколько моя гулялка просмотрит страниц, то на такое количество и сделал бы возврат назад. Но беда в том что может 2, а может 5, а может по одной ссылке перейдёт, а последующие откроются в новой вкладке. Спасибо всем кто откликнулся на просьбу помоч.
 
Двойной клик левой:
C#:
Развернуть Свернуть Копировать
tab.FullEmulationMouseClick("left", "click");
tab.FullEmulationMouseClick("left", "click");

Не срабатывает двойной клик в Instagram. Должен быть лайк, если даблклик по картинке, но лайк не появляется :(

Знает кто нибудь как это решить?
 
Это тоже не срабатывает.
Место - лента Instagram.
Делаю рандомный лайк нескольких постов...


Так что то не пойму, а зачем двойной клик то? За 1 клик происходит лайк или ты хочешь за двойной клик поставить 2 два лайка...так вот то и происходит у тебя ....ты двойным кликом ставишь и сразу же убираешь лайк так то вторым нажатием... сделай циклом...два цикла рандомный лайк или последовательный
 
Так что то не пойму, а зачем двойной клик то? За 1 клик происходит лайк или ты хочешь за двойной клик поставить 2 два лайка...так вот то и происходит у тебя ....ты двойным кликом ставишь и сразу же убираешь лайк так то вторым нажатием... сделай циклом...два цикла рандомный лайк или последовательный
Если нажимать сердечко, то да - один раз надо кликать.
Но там в ленте этих сердечек очень много (часть к постам, часть к комментариям) и я не могу понять как "отловить" нужные мне.
Но можно делать двойной клик по самой картинке и он тоже превращается в лайк. Так вот с этим то двойным кликом у меня и не получается. Оба предложенных выше варианта пробовал и оба не срабатывают((
 
Ребят, а можно сделать типа:
C#:
Развернуть Свернуть Копировать
tance.ActiveTab.FullEmulationMouseWheel(rnd.Next(100,500), 5, rnd.Next(5,10));

нужна рандомная перемотка страницы
 
Ребят, а можно сделать типа:
C#:
Развернуть Свернуть Копировать
tance.ActiveTab.FullEmulationMouseWheel(rnd.Next(100,500), 5, rnd.Next(5,10));

нужна рандомная перемотка страницы
C#:
Развернуть Свернуть Копировать
FullEmulationMouseWheel(rnd.Next(100,500), rnd.Next(100,500));
 
  • Спасибо
Реакции: LaGir и xDESTROYx
C#:
Развернуть Свернуть Копировать
FullEmulationMouseWheel(rnd.Next(100,500), rnd.Next(100,500));
Спасибо, только что то не работает) я в кубике не силен, осваиваю.

вот такой статичный вариант работает:
C#:
Развернуть Свернуть Копировать
instance.ActiveTab.FullEmulationMouseWheel(0,500);

А ваш рандом вариант нет
 
Спасибо, только что то не работает) я в кубике не силен, осваиваю.

вот такой статичный вариант работает:
C#:
Развернуть Свернуть Копировать
instance.ActiveTab.FullEmulationMouseWheel(0,500);

А ваш рандом вариант нет
C#:
Развернуть Свернуть Копировать
var rnd = new Random();
instance.ActiveTab.FullEmulationMouseWheel(rnd.Next(0,500),rnd.Next(0,500));
 
  • Спасибо
Реакции: silom2000 и xDESTROYx
C#:
Развернуть Свернуть Копировать
var rnd = new Random();
instance.ActiveTab.FullEmulationMouseWheel(rnd.Next(0,500),rnd.Next(0,500));
Точно! спасибо огромное за помощь. (для этого есть кнопка, я знаю). Но надо же сказать что "работает)"
 
  • Спасибо
Реакции: Valandersi
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" что бы мышка наводилась не только на первое совпадение но и на любое другое, желательно после чего кликала
 
Ребят, подскажите как передать рандомное значение вместо "0" что бы мышка наводилась не только на первое совпадение но и на любое другое, желательно после чего кликала
Скорей всего правильней будет не просто подставлять рандомное значение вместо 0, а собирать коллекцию элементов по заданному атрибуту и рандомно выбирать элемент для клика.
 
  • Спасибо
Реакции: xDESTROYx
var div = tab.FindElementByAttribute("a", "outerhtml", "card-image-view__clickable", "text", rnd.Next(0, tab.FindElementsByAttribute("a", "outerhtml", "card-image-view__clickable", "text").Count));
 
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);
 
Подскажите, как установить курсор в видимую область?
 
Подскажите, как установить курсор в видимую область?
C#:
Развернуть Свернуть Копировать
instance.ActiveTab.FullEmulationMouseCurrentPosition=new Point(1,1);
где 1,1 подставляешь свои координаты
 
  • Спасибо
Реакции: zhenya777
Заметил, что не всегда срабатывает FullEmulationMouseWheel, бывает затык и визуально не мотается страница. В то же время MouseWheel нормально срабатывает. И после того, как дернули страницу через MouseWheel хотя бы на 1 пиксель, начинает работать и FullEmulationMouseWheel. Как победить?
 
Каким образом можно настроить исключение, чтобы не кликало на рекламу. Просто иногда когда по хпатч присходит клик скрипт отрабатывает и может кликнуть рекламу. а этого нам не надо
 

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