rediffusion
11/8/2017 - 8:07 PM

FullEmulationMouseWheel()

//Ссылка на онлайн-документацию по объектной модели для всех версий 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);

//Примечания:
//