Author Topic: Скроллить страницу в привязанном окне браузера  (Read 1925 times)

0 Members and 1 Guest are viewing this topic.

Kedrick

  • Освоившийся
  • **
  • Posts: 70
    • View Profile
Браузер мозилла, скриптую бота для браузерки, необходимо слегка отскроллить страницу вниз чтобы охватить поиском все нужные кнопки из списка. Причем не тупо до самого низа кнопкой END, и не пробелом или PgDown, а буквально пару раз крутнуть колесо мыши :)
Но поскольку самые очевидные варианты в привязке не работают, я сделал так:
Code: (clickermann) [Select]
while(1 = 1) // бесконечный цикл
   // тут вырезано начало скрипта и открытие большой страницы которая не влезает по высоте полностью в окно
   // дальше надо скрольнуть чуть вниз
      FOR($a, $a < 10)
         LCLICK(1200,980) // кликать на стрелку вниз в правом нижнем углу
         WAITMS(50)
      END_CYC
   // тут находим необходимую кнопку и тыкаем по ней
   // страница перезагружается и скрипт завершается
END_CYC

Потом сделал так:
Code: (clickermann) [Select]
FOR($a, $a < 10)
      KEYPRESS(#DOWN)
      WAITMS(50)
END_CYC

Оба варианта работают, но только в первый раз при запуске. Первый круг скрипт проходит, а на втором уже не скроллит ничего, ни одним из вариантов. Все остальные нажатия и поиски картинок отрабатывает.
Пробовал ps/2 режим, вообще все перестает нажимать.

Теперь собственно вопрос, это моя локальная бага, или я что-то упустил? И есть ли более изящный способ скроллиться?

Kedrick

  • Освоившийся
  • **
  • Posts: 70
    • View Profile
Спасибо, одно из первейших правил программирования - "обнуляй переменные", я как последний лох протупил  ;D

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Для 4.11 теперь надо писать так.
Code: (clickermann) [Select]
FOR($a=0, $a < 10)
   KEYPRESS(#DOWN)
   WAITMS(50)
END_CYC

Но есть случаи когда обнулять не нужно, поэтому так сделано для большей гибкости.