//Ссылка на онлайн-документацию по объектной модели для всех версий 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 FullEmulationMouseWheel
//Предназначение метода: Выполнение события прокрутки колесиком мыши
//Параметры:
// int deltaX - Размер расстояния прокрутки в пикселах относительно оси x.
// int deltaY - Размер расстояния прокрутки в пикселах относительно оси y.
//Демонстрация:
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();
HtmlElementCollection colOrganicResults = Tab1.FindElementsByXPath("//h2[starts-with(@class, 'organic__title')]");
HtmlElement elLastResult = colOrganicResults.Last(); //можно получить последний элемент сразу по XPath, здесь просто демонстрирую использование .Last для HtmlElementCollection
//проматываем страницу колёсиком мыши, пока элемент не приблизится к верхнему краю экрана
int intCurrDisposition = elLastResult.DisplacementInTabWindow.Y;
int intPrevDisposition = 0;
Random rndWheelStepGenerator = new Random();
do{
Tab1.FullEmulationMouseWheel(0, rndWheelStepGenerator.Next(50, 150));
intCurrDisposition = elLastResult.DisplacementInTabWindow.Y;
project.SendInfoToLog(String.Format("Целевой элемент в {0} пикселах от верхнего края вкладки", intCurrDisposition));
if (intCurrDisposition==intPrevDisposition){
break;
}else{
intPrevDisposition=intCurrDisposition;
}
Thread.Sleep(rndWheelStepGenerator.Next(50, 70));
}while (intCurrDisposition>200);
//Примечания:
//