Прокрутка веб страницы вниз

Ale111

Client
Регистрация
11.12.2015
Сообщения
25
Благодарностей
0
Баллы
3
Выкладываю часть проекта для прокрутки веб страницы вниз. Работает через раз в PMaker. То прокручивает, то нет. Может кто подскажет? Заранее спасибо !!!
 

Вложения

Mutant

Client
Регистрация
19.09.2014
Сообщения
187
Благодарностей
36
Баллы
28
Что тут подсказывать. То что вы выложили работать и не должно. Там ошибка на ошибке. Например во тут
 

Вложения

  • 82,5 КБ Просмотры: 701
  • Спасибо
Реакции: Ale111

Mutant

Client
Регистрация
19.09.2014
Сообщения
187
Благодарностей
36
Баллы
28
Готовое решение
 

Вложения

  • Спасибо
Реакции: Ale111

Ale111

Client
Регистрация
11.12.2015
Сообщения
25
Благодарностей
0
Баллы
3
О, как, оказывается. Не знал, что из-за недозагрузки страницы кнопка может не нажаться.
Спасибо!!!!!!!!!!!!!!!!!!!!!!!!!
 

Ale111

Client
Регистрация
11.12.2015
Сообщения
25
Благодарностей
0
Баллы
3
а есть какой-нибудь сниппет на c# для прокрутки?
 

Mutant

Client
Регистрация
19.09.2014
Сообщения
187
Благодарностей
36
Баллы
28
Есть

Код:
//(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);
}
Иногда что бы код сработал, необходимо предварительно кликнуть мышкой на странице.
 
Последнее редактирование:
  • Спасибо
Реакции: genkst и Знайка

Ale111

Client
Регистрация
11.12.2015
Сообщения
25
Благодарностей
0
Баллы
3
Есть

Код:
//(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);
}
Иногда что бы код сработал, необходимо предварительно кликнуть мышкой на странице.
Спасибо. Попробовал. Чего-то не прокручивает
 

Вложения

Mutant

Client
Регистрация
19.09.2014
Сообщения
187
Благодарностей
36
Баллы
28
del
 
Последнее редактирование:

Mutant

Client
Регистрация
19.09.2014
Сообщения
187
Благодарностей
36
Баллы
28
Иногда что бы код сработал, необходимо предварительно кликнуть мышкой на странице.
 

Вложения

Ale111

Client
Регистрация
11.12.2015
Сообщения
25
Благодарностей
0
Баллы
3
Да. Спасибо. Зациклил число нажатий на кнопку. По высоте окна иногда выходит заранее из цикла. Видимо паузу больше надо
 

Ale111

Client
Регистрация
11.12.2015
Сообщения
25
Благодарностей
0
Баллы
3
Иногда что бы код сработал, необходимо предварительно кликнуть мышкой на странице.
До конца все равно не долистывает. Выходит после определенного количества прокруток. По ходу высоту body неправильно определяет. Видимо, кокой-то другой алгоритм нужно придумать. Может, по свойству active кнопки.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
или просто не успевает загрузить порцию данных за 4-6 секунд когда страница уже большая
 

Ale111

Client
Регистрация
11.12.2015
Сообщения
25
Благодарностей
0
Баллы
3
или просто не успевает загрузить порцию данных за 4-6 секунд когда страница уже большая
Неа. Выходит он все правильно. По достижению значения высоты. Вот только данная высота окна не является правильной. Там ещё текста куча снизу остаётся.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
Неа. Выходит он все правильно. По достижению значения высоты. Вот только данная высота окна не является правильной. Там ещё текста куча снизу остаётся.
это исключено. значит вы высоту не того элемента меряете.
 

Igorii

Client
Регистрация
21.02.2015
Сообщения
369
Благодарностей
292
Баллы
63
Иногда что бы код сработал, необходимо предварительно кликнуть мышкой на странице.
Подскажите, а как в этод код:

Код:
//(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);
}
вставить переменные для количества экранов и паузы между листанием следующего экрана?
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
Код:
//(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);
}
 

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