Ожидание завершения загрузки



  • Здравствуйте.
    Столкнулся со следующей проблемой.
    После авторизации необходимо проверить существование элемента.
    Проверка происходит, однако, БАС не дожидается загрузки страницы, и элемент поэтому постоянно не находится.
    Уважаемые коллеги, как Вы решаете данную проблему?

    P.S.
    Сон почему-то не решает её((((



  • Пока единственный вариант - использовать один из этих методов.
    http://wiki.bablosoft.com/doku.php?id=ru:how_to_wait_on_certain_event_on_page

    Самый самый простой - выбрать уникальный элемент на странице, и использовать такое действие

    0_1468606924461_WaitElement.png

    В новой версии будет возможность автоопределения, но лучше всего все же использовать функции ожидания.



  • Проблема в том, что когда делаешь чекерры. То страницы обычно одинаковая, только ошибки разные. (Одинаковое всё, кроме текстового сообщения; но чтобы воспользоваться ожиданием надо знать какой из ерроров появится. Наперед этого знать не могу). Либо данные введены верно и грузится совсем другая страничка. И соответственно уникальные элементы разные.
    В целом софт очень крутой, но этот нюанс не позволяет использовать его на этом классе задач. Жду обновления, как маны небесной. Выпускайте уже платную версию, т.к. софт этого достоит, если решить еще нюанс с ожиданием загрузки страницы!!!



  • @Nludi said:

    То страницы обычно одинаковая

    Если страница всегда одинаковая, то можно ждать загрузки этой страницы. Действие "Ждать адреса браузера" или "Ждать загрузки url".

    Если не одна из функций ожидания не подходит, то можно использовать "нестандартны функции ожидания"
    http://wiki.bablosoft.com/doku.php?id=ru:how_to_wait_on_certain_event_on_page#нестандартные_функции_ожидания



  • @support said:

    Если страница всегда одинаковая, то можно ждать загрузки этой страницы. Действие "Ждать адреса браузера" или "Ждать загрузки url".

    Он будет ждать полного завершения загрузки страницы? Или просто проверит, что начал грузится данный урл и сразу пойдет сверять?

    "Нестандартные" функции не подходят, т.к. суть программы следующая.
    Суть программы:

    1.Подгружаем URL.
    2. Проверки
    If (element1 == TRUE) {write in 1.txt}
    else if (element2 == TRUE ) {write in 2.txt}
    else if (element3 == TRUE) {write in 3.txt}
    else {write in 4.txt}

    Он в цикле будет проверять данные условия и в любом случае запишет в 4й файл; т.к. элемент не будет найден в 3х случаях (хотя он просто еще не успеет подгрузиться).



  • @Nludi said:

    Он будет ждать полного завершения загрузки страницы? Или просто проверит, что начал грузится данный урл и сразу пойдет сверять?

    "Ждать адреса браузера" - нет.
    "Ждать загрузки url" - будет ждать полной загрузки.

    Попробуйте перед данной проверкой воспользоваться действием "Ждать загрузки url"
    Также, если вам нужно сделать по быстрому, используйте сон.
    Он у вас не работал, так как сон по умолчанию отключен в режиме отладки.



  • Могу я воспользоваться символом * в написании урла?
    Например, Ждать загрузки URL site.ru/*



  • Да, можете



  • Написал, [звёздочка]site.ru/[звёздочка] (тип указал expression)
    И выскакивает ошибки в режиме "записи"
    : Thread failed with message "SyntaxError: Parse error Line number:3 During execution of script { wait_load(site.ru,function(){ section_start("test", 12976,function(){ })})} "



  • @Nludi тип должен быть string. Звездочки добавляются автоматически.



  • Если я Вас правильно понял, то я просто должен написать site.ru?
    Но он всё равно не ожидает загрузки следующей страницы



  • Если написать site.ru то скрипт будет ожидать пока не загрузится любая страница с сайта, я не думаю, что это поможет



  • Мне это поможет. Т.к. мне надо что проверялись существования элементов только после того, как полностью загрузится страница (и разумеется эта страница на сервере site.ru). Только когда я пишу так, он всё равно не ожидает загрузки.
    Может быть фикс какой-то получится сделать? Уже 5й заказ у меня простаивает, не могу клиентам отдать, т.к. существование элемента невозможно проверить.
    И приходится на этом кривом аймакросе работать((((



  • @Nludi

    Только когда я пишу так

    Пишите как?

    Фикс чего? Я пока не вижу какой-то ошибки в БАС.



  • https://youtu.be/TNu0XVOvuNE - вот видео, как этотработает.



  • Пишу Wait http://site.ru; хотя грузится http://site.ru/?vars=something
    Вот какие именно переменные будут грузится, угадать не могу.



  • В хелпе написано:
    [[VARIABLE]].indexOf("val")<0
    Выполнять только если переменная VARIABLE содержит «val»

    В условии должен быть знак меньше или больше?



  • @Nludi
    Wait http://site.ru будет ждать, пока загрузится любая страница с этого сайта. Более того, какая-то страница с этого сайта уже когда то грузилась, то это действие завершится мгновенно.
    Сначала вам нужно определится с критерием, как именно будет известно, что страница загружена?



  • Выполнять только если переменная VARIABLE содержит «val»

    После появления конструктора выражений, код писать не обязательно.

    0_1468748119947_Contains.png



  • Исправьте в ВИКИ, пожалуйста. (http://wiki.bablosoft.com/doku.php?id=ru:is_it_possible_to_execute_certain_action_depending_on_condition_if_statement)

    @support said:

    Сначала вам нужно определится с критерием, как именно будет известно, что страница загружена?

    Вот именно, что критериев то нет универсальных, т.к. могут быть загружены разные варианты.
    Поэтому и прошу Вас как-то программно реализовать функцию проверки того, что страница загружена полностью.


Log in to reply
 

  • 10
  • 9
  • 2
  • 6
  • 3
  • 13
  • 6
  • 6