//Ссылка на онлайн-документацию по объектной модели для всех версий ZennoPoster: //http://zennolab.com/wiki/en:zennoposter:macros-documentation
//Ссылка на онлайн-документацию по объектной модели версии 5.11.0.0: //https://help.zennolab.com/en/v5/zennoposter/5.11.0.0/
//public void MouseWheel
//Предназначение метода: Выполняет событие колёсика мыши в определённой точке внутри вкладки.
//Параметры:
// int x - Координата x внутри области вкладки для вызова события прокрутки колёсика мыши.
// int y - Координата y внутри области вкладки для вызова события прокрутки колёсика мыши.
// double deltaX - Размер шага прокрутки в пикселах относительно оси x.
// double deltaY - Размер шага прокрутки в пикселах относительно оси y.
// bool considerScroll - true если необходимо учитывать текущую позицию прокрутки браузера; иначе false. Значение по умолчанию это false.
//Демонстрация:
Tab Tab1 = instance.ActiveTab;
Tab1.Navigate("https://ya.ru");
Tab1.WaitDownloading();
Tab1.FindElementByXPath("//div[starts-with(@class, 'search2')]/descendant::input", 0).SetValue("Проверка", "Middle");
Tab1.FindElementByXPath("//button[contains(@class, 'button_theme_websearch')]/span", 0).Click();
Tab1.WaitDownloading();
HtmlElement elFirstSearchResult = Tab1.FindElementByXPath("(//h2[starts-with(@class, 'organic__title')])[1]", 0);
HtmlElement elLastSearchResult = Tab1.FindElementByXPath("(//h2[starts-with(@class, 'organic__title')])[last()]", 0);
//Эмулируем "человекоподобную" работу с колёсиком мыши
int intCurrentYPosition = 0;
int intMaxWheelMovesLeft = 30;
Random rndGenerator = new Random();
while(true){
int intCurrentMoveDistance = rndGenerator.Next(75, 205);
int intTopPosition = elLastSearchResult.DisplacementInTabWindow.Y;
if (intTopPosition>150){
if (intCurrentMoveDistance>intTopPosition-150) intCurrentMoveDistance=intTopPosition-150; //уменьшаем шаг последней прокрутки, если он оказывается слишком большим
Tab1.MouseWheel(0, intCurrentYPosition, 0, intCurrentMoveDistance, true);
intCurrentYPosition+=intCurrentMoveDistance;
}else{
break;
}
if (--intMaxWheelMovesLeft==0) break;
Thread.Sleep(50);
}
//Примечания:
//