Проблема с эмуляцией бездействия

Поддержка
  • Здравствуйте. У меня проблема с бездействием. У меня скрипт листает страницу вниз.. и должен на том же месте тупо шевелить мышкой куда он долистал.. для этого в прошлой версии БАС все работало. Стоят сл параметры [2,3,3,3] но в последней версии при вызове эмуляции бездействия страница резко улетает вверх (в начало).
    Как это понять? Я так понимаю это баг!
    0_1540840542734_1540123630804-test.xml

  • @wolf боюсь вас удивить, но у меня нормально работает. Вниз не улетает ничего, чуть-чуть прокрутка была и все на этом)

  • @uraabk У меня даже в пустом проекте так же...

    Просто например захожу на Яндекс.. прокручиваю вручную вниз
    и выполняю бездействие [2,3,3,3] и прям иногда немного вверх а чаще всего прям в начало..
    Что делать? Где админ?

  • @wolf said in Проблема с эмуляцией бездействия:

    Что делать?

    Переустановить Бас, виндоус. Хотя не думаю, что это поможет
    Версия Баса какая хоть?

  • @uraabk 21.3.0
    Удалил полностью почистил все ничего не помогло.. перекидывает и все вверх..
    Посути с такими параметрами он вообще не должен листать [2,3,3,3]

    Ставию просто 4 бездействие то не перекидывает вверх.
    При 3 просто вообще зависает)
    При 2 перекидывает вверх сразу в начало страницы
    А вот при 1 не перекидывает и листает с места откуда была пролистана страница.. тут явно какой то косяк.

  • @Wolf Посмотрел сейчас код модуля и понял в чём дело:

    page().script("document.body.scrollLeft")!
        IDDLE_CURSOR_POSITION_SCROLL_X = parseInt(_result())
    
     page().script("document.body.scrollTop")!
        IDDLE_CURSOR_POSITION_SCROLL_Y = parseInt(_result())
    
    

    document.body.scrollLeft и document.body.scrollTop эти команды возвращают значение прокрутки страницы от левого и от верхнего края соответственно, после обновления браузера


    Вот тестовый скрипт для наглядности:
    Версия BAS 21.0.2
    0_1540919349835_221ccf3d-6894-4c6a-8655-40c996dd51f9-изображение.png


    Этот же скрипт, версия BAS 21.3.0
    0_1540919479505_ae07ce4c-fe48-4f15-9671-44ac9a0b03c7-изображение.png


    Решается заменой оных на window.pageYOffset и window.pageXOffset соответсвенно.


    Ещё заметил в 3 - случайные движения мыши на короткое расстояние странное условие:

     _if(IDDLE_EMULATION_CURRENT_ITEM == 3, function(){
        //short move
        if(IDDLE_CURSOR_POSITION_X < 0 || IDDLE_CURSOR_POSITION_Y < 0)
          _break()
    

    Странность в том, что объявляются они в начале скрипта:

    IDDLE_CURSOR_POSITION_X = -1
    IDDLE_CURSOR_POSITION_Y = -1
    

    и ни где они не переопределяются:

     //short move
           log(IDDLE_CURSOR_POSITION_X)
           log(IDDLE_CURSOR_POSITION_Y)
           if(IDDLE_CURSOR_POSITION_X < 0 || IDDLE_CURSOR_POSITION_Y < 0)
       _break()
       
    

    0_1540920698023_e588bc8a-c5cc-4eac-879a-7b1bf251b0b7-изображение.png


    Кого утомил деталями - извините :D
    Вот итоговый, рабочий скрипт с правильно рабочим действием "Эмуляция бездействия".


    А вот изменённый модуль, для установки нужно распокавать IdleEmulation в папку модулей BrowserAutomationStudio\apps\21.3.0\modules с заменой файлов.

  • Фига себе) красавчик) ждем теперь обновление с фиксами) четко все описал)

  • @fox

    document.body.scrollLeft и document.body.scrollTop эти команды возвращают значение прокрутки страницы от левого и от верхнего края соответственно, после обновления браузера

    Спасибо, исправил

    Ещё заметил в 3 - случайные движения мыши на короткое расстояние странное условие:

    Короткое перемещение мыши должно происходить до координат, которые близко к текущему положению. Во время самого первого перемещения текущие координаты неизвестны, поэтому короткое перемещение совершать нельзя. Понять что перемещение является первым можно проверив переменные IDDLE_CURSOR_POSITION_X и IDDLE_CURSOR_POSITION_Y, если они меньше нуля.

    Странность в том, что объявляются они в начале скрипта:
    и ни где они не переопределяются:

    Они хранят текущее положение мыши и переопределяются после движения курсора, например тут:

    _if(IDDLE_EMULATION_CURRENT_ITEM == 2, function(){
        //long move
        page().script("document.body.scrollLeft")!
        IDDLE_CURSOR_POSITION_SCROLL_X = parseInt(_result())
    
        page().script("document.body.scrollTop")!
        IDDLE_CURSOR_POSITION_SCROLL_Y = parseInt(_result())
    
        ///
        /// Переменные содержат новое положение мыши
        ///
        IDDLE_CURSOR_POSITION_X = rand(1,IDDLE_CURSOR_POSITION_WIDTH)
        IDDLE_CURSOR_POSITION_Y = rand(1,IDDLE_CURSOR_POSITION_HEIGHT)
        move(IDDLE_CURSOR_POSITION_SCROLL_X + IDDLE_CURSOR_POSITION_X,IDDLE_CURSOR_POSITION_SCROLL_Y + IDDLE_CURSOR_POSITION_Y)!
    
      })!