Выкладываю часть проекта для прокрутки веб страницы вниз. Работает через раз в PMaker. То прокручивает, то нет. Может кто подскажет? Заранее спасибо !!!
Вложения
-
30,9 КБ Просмотры: 158
//(int i = 0; i < n; i++) - n - количество экранов вниз
//Sleep(5000); - 5000 пауза между листанием следующего экрана в милисекундах 5000 - 5сек
for (int i = 0; i < 8; i++)
{
Emulator.SendKey(instance.ActiveTab.Handle,System.Windows.Forms.Keys.End, KeyboardEvent.Down);
System.Threading.Thread.Sleep(5000);
}
Спасибо. Попробовал. Чего-то не прокручиваетЕсть
Иногда что бы код сработал, необходимо предварительно кликнуть мышкой на странице.Код://(int i = 0; i < n; i++) - n - количество экранов вниз //Sleep(5000); - 5000 пауза между листанием следующего экрана в милисекундах 5000 - 5сек for (int i = 0; i < 8; i++) { Emulator.SendKey(instance.ActiveTab.Handle,System.Windows.Forms.Keys.End, KeyboardEvent.Down); System.Threading.Thread.Sleep(5000); }
До конца все равно не долистывает. Выходит после определенного количества прокруток. По ходу высоту body неправильно определяет. Видимо, кокой-то другой алгоритм нужно придумать. Может, по свойству active кнопки.Иногда что бы код сработал, необходимо предварительно кликнуть мышкой на странице.
Неа. Выходит он все правильно. По достижению значения высоты. Вот только данная высота окна не является правильной. Там ещё текста куча снизу остаётся.или просто не успевает загрузить порцию данных за 4-6 секунд когда страница уже большая
это исключено. значит вы высоту не того элемента меряете.Неа. Выходит он все правильно. По достижению значения высоты. Вот только данная высота окна не является правильной. Там ещё текста куча снизу остаётся.
Подскажите, а как в этод код:Иногда что бы код сработал, необходимо предварительно кликнуть мышкой на странице.
//(int i = 0; i < n; i++) - n - количество экранов вниз
//Sleep(5000); - 5000 пауза между листанием следующего экрана в милисекундах 5000 - 5сек
for (int i = 0; i < 1; i++)
{
Emulator.SendKey(instance.ActiveTab.Handle,System.Windows.Forms.Keys.End, KeyboardEvent.Down);
System.Threading.Thread.Sleep(5000);
}
//(int i = 0; i < n; i++) - n - количество экранов вниз
//Sleep(5000); - 5000 пауза между листанием следующего экрана в милисекундах 5000 - 5сек
int n = Convert.ToInt32(project.Variables["n"].Value);
int sleep = Convert.ToInt32(project.Variables["sleep"].Value);
for (int i = 0; i < n; i++)
{
Emulator.SendKey(instance.ActiveTab.Handle,System.Windows.Forms.Keys.End, KeyboardEvent.Down);
System.Threading.Thread.Sleep(sleep);
}