Версия 4.0.12
Есть куча скриптов для регистрации на разных сайтах (регистрация e-mail, гостевые, блоги и т.п.).
Программа работает как-то странно. В один проход все регистрируется нормально и скрипты отрабатывают, а в другой проход XHE просто останавливается.
При этом процессор не загружен (0%), трафика в инет нет, на панели отладки показывается, что скрипт выполняется (красный квадрат активен, зеленый треугольник - нет). Работа идет без прокси.
Такое ощущение, что программа чего-то бесконечно ждет.
Особенно любит программа останавливаться при регистрации e-mail на qip.ru
Как посмотреть, что вообще с программой происходит в текущий момент времени? Может быть есть какой-то статус работы или лог ошибок?
PS: самое интересное, что при перезапуске программы скрипты отрабатывают нормально. Причины и закономерности такой остановки выявить не получается.
Остановка работы XHE
возможно это из-аз использования команды
browser->wait(1) - т.е страница не догружается и от этого ждем бесконечно.
вместо этого можно использовать
browser->wait_for или напрямую использовать browser->is_busy.
Также рекоммендуется отключить все что можно для ускорения загрузки, даже картинки, а те что надо (капчу и т.п) подключать через image->show_by. Для скорости еще рекомендуем использовать Runtime версию - можно скачать в папке загрузки програмы.
Где конкретно происходит затык можно узнать включив лог команд в настройках или включив панель информации, там будет показаны все команды принятые хуманом и статус их отработки.
Если это происходит на другой команде - не wait, то напишите плиз на какой - узнать можно через лог команд - разберемся
browser->wait(1) - т.е страница не догружается и от этого ждем бесконечно.
вместо этого можно использовать
browser->wait_for или напрямую использовать browser->is_busy.
Также рекоммендуется отключить все что можно для ускорения загрузки, даже картинки, а те что надо (капчу и т.п) подключать через image->show_by. Для скорости еще рекомендуем использовать Runtime версию - можно скачать в папке загрузки програмы.
Где конкретно происходит затык можно узнать включив лог команд в настройках или включив панель информации, там будет показаны все команды принятые хуманом и статус их отработки.
Если это происходит на другой команде - не wait, то напишите плиз на какой - узнать можно через лог команд - разберемся
1. я везде использую wait_for, и даже увеличиваю количество попыток (второй параметр)
2. в коде для qip была ошибка, при определенных обстоятельствах получался бесконечный цикл. Стало меньше останавливаться, но все равно останавливается
3. я уже пробовал включить raw-лог - тормозит все жутко, поэтому я попросил в другой теме добавить функцию для вывода лога в файл
4. ну и буду дальше смотреть и выяснять, где все останавливается
2. в коде для qip была ошибка, при определенных обстоятельствах получался бесконечный цикл. Стало меньше останавливаться, но все равно останавливается
3. я уже пробовал включить raw-лог - тормозит все жутко, поэтому я попросил в другой теме добавить функцию для вывода лога в файл
4. ну и буду дальше смотреть и выяснять, где все останавливается
кстати, а есть возможность просмотреть лог выполненных команд + время вызова этой команды?
например, что-то вроде:
[14:04:40 12.10.2010] $browser->navigate('http://www.yandex.ru/');
[14:04:45 12.10.2010] $browser->wait_for(60, 1);
PS: в информационной панели в последних командах ничего не выводится, скрипт опять стоит (уже 20 минут ничего не происходит)
например, что-то вроде:
[14:04:40 12.10.2010] $browser->navigate('http://www.yandex.ru/');
[14:04:45 12.10.2010] $browser->wait_for(60, 1);
PS: в информационной панели в последних командах ничего не выводится, скрипт опять стоит (уже 20 минут ничего не происходит)
По логам команд и времени :
В диалоге настроек нужно включить на вкладке 'Логи' - чекбокс 'Разрешить лог команд', а просмотреть его можно через в меню Отладка->Логи->CommandLog.txt->Показать, там будет время когда пришла команда и что с ней стало, также можно включить и посмотреть просто 'Лог', там должна быть информация детальней.
А информационная панель следить за командами, только если она была заранее показана.
Если ничего не получится, завтра можно с утра стукнуть в аську саппорта - разберемся )
В диалоге настроек нужно включить на вкладке 'Логи' - чекбокс 'Разрешить лог команд', а просмотреть его можно через в меню Отладка->Логи->CommandLog.txt->Показать, там будет время когда пришла команда и что с ней стало, также можно включить и посмотреть просто 'Лог', там должна быть информация детальней.
А информационная панель следить за командами, только если она была заранее показана.
Если ничего не получится, завтра можно с утра стукнуть в аську саппорта - разберемся )
спасибо, буду смотреть
пока что по логам получается, что скрипт встает после выполнения $browser->wait_for
судя по логам, вызывается 2 раза IsBusy, возвращается true и в третий раз вызывается IsBusy, возвращается false, и после этого скрипт встает
пока что есть подозрение, что все же ошибка в моем коде
пока что по логам получается, что скрипт встает после выполнения $browser->wait_for
судя по логам, вызывается 2 раза IsBusy, возвращается true и в третий раз вызывается IsBusy, возвращается false, и после этого скрипт встает
пока что есть подозрение, что все же ошибка в моем коде
