Ожидание появления элемента с условием.



  • Нужный див на сайте <p class="success"
    нажимаю кнопку
    див меняется на <p class="waiting">
    а затем, может стать снова <p class="success"> в случае удачи или <p class="error"> при неудаче.

    Стоит экшен ждать появления элемента, но как прикрутить к нему условие..
    Говорят можно через Xpath, я сейчас пытаюсь, но пока безрезультатно.



  • @Fox нужно получить код елемента выше(отец) , к нему применить xpath получить xml //p/@class



  • @DrPrime Я так делал через >MATCH, косяк именно в <p class="waiting">. То есть я на кнопку нажал, див поменялся и экшен сработал, не дожидаясь <p class="success"> или <p class="error">.

    Можно и по id, вот только всё равно два условия и надо дождаться либо одно, либо другое.

    Есть конечно вариант обернуть в While и в каждой итерации проверять наличие обоих элементов на странице. Но это кривоватый костыль.. Прикручивать к нему счётчик времени выполнения для таймаута..



  • @Fox said in Ожидание появления элемента с условием.:

    Стоит экшен ждать появления элемента, но как прикрутить к нему условие..
    Говорят можно через Xpath, я сейчас пытаюсь, но пока безрезультатно.

    Да xpath поддерживает or или and операторы, но в басе я их не использовал) не приходилось как то, попробуй вот такой запрос //p[@class="success" or @class="error"]



  • @santilo Спасибо. Я неправильно оформлял условие.

    Рано чё то я обрадовался :( Селектор находит нужные элементы Селектор элемента ( найдено 3 ). Но в упор не срабатывает ешкен ждать появления элемента если включена проверка видимости на экране.

    А как будет правильный поиск по id?
    >XPATH> //*[@id="freeGet" or @id="freeError"] Селектор элемента ( найдено 2 ), но с проверкой видимости на экране тоже не срабатывает. :((

    Причём срабатывает, если выбор один
    >XPATH> //*[@id="freeError" or @id="freeError"], но это понятно, раз найденый селектор один.

    Я думаю знаю в чём косяк, галочка Проверять видин ли элемент на экране применяется ко всем селекторам. Вот и выходит, что Xpath находит оба, но когда появляется только один, BAS ждёт появление второго.. Хотя вроде условие or стоит..



  • @Fox said in Ожидание появления элемента с условием.:

    А как будет правильный поиск по id?

    XPATH> //*[@id="freeGet" or @id="freeError"] Селектор элемента ( найдено 2 ), но с проверкой видимости на экране тоже не срабатывает. :((

    Да верный запрос по id, а ты пробовал вместо * тэг указывать. Не срабатывает , так как у тебя 2 элемента находят по этому запроса..а должен быть один, для правильной работы этого экшена.



  • @santilo Тогда не понимаю.. Как ещё можно реализовать экшен ожидать появления элемента с проверкой видимости на экране, если появится может либо один элемент, либо второй. Почему нельзя дождаться одного из них?



  • This post is deleted!


  • @Fox said in Ожидание появления элемента с условием.:

    @santilo Тогда не понимаю.. Как ещё можно реализовать экшен ожидать появления элемента с проверкой видимости на экране, если появится может либо один элемент, либо второй. Почему нельзя дождаться одного из них?

    А если попробовать без or //*[contains(@id, "free")] , дожидаемся элемент у которого в имени id есть подстрока free.



  • @santilo said in Ожидание появления элемента с условием.:

    @Fox said in Ожидание появления элемента с условием.:

    @santilo Тогда не понимаю.. Как ещё можно реализовать экшен ожидать появления элемента с проверкой видимости на экране, если появится может либо один элемент, либо второй. Почему нельзя дождаться одного из них?

    А если попробовать без or //*[contains(@id, "free")] , дожидаемся элемент у которого в имени id есть подстрока free.

    Да, и он их найдёт.. Все три :)) Весь косяк в промежуточном этапе freeWait. Ведь Xpath сработает сразу, как появится анимация ожидания..



  • @Fox said in Ожидание появления элемента с условием.:

    Да, и он их найдёт.. Все три :))

    Да) ты прав, я тупанул))


Log in to reply