Модальные окна, как их обрабатывать

Поддержка
  • @FastSpace said in Модальные окна, как их обрабатывать:

    Накатал до жути простое решение.

    Когда на сайте вылазит какой-либо элемент который закрывает другой элемент, то в этом новом элементе 99.9% есть какой-нибудь текст.
    Итак сначала получаем случайный элемент как обычно, затем получаем его координаты, а затем по координатам получаем текст и получаем текст у обычного элемента который получили случайно. Собственно часто бывает когда элемент не имеет текста, то есть если мы получили пустоту, значит элемент ничего не закрыло. А если получили что текст разный (у случайного элемента и у элемента по той координате), это значит что какой-то левый текст перекрыл текст элемента который мы выбрали случайно, значит элемент скрыт.
    Пока погонял минут 30, все сложные проверки он прошел. Возможно есть какой-нить будь прикол, но пока меня мое решение устраивает более чем.
    А вообще понаписали тут сторожили :D Ну это норма.

    Тут не сказано, а как в итоге закрыть элемент который нам мешает )

    И что то мне подсказывает что @Fox это сразу и предлагал

    @Fox said in Модальные окна, как их обрабатывать:

    Определяй координаты рандомного селектора на странице, а затем определяй селектор по этим координатам (ищи метод js), после этого сравнивай их, если это один и тот же элемент, значит ни какого меню нет

  • @Fox said in Модальные окна, как их обрабатывать:

    Код действия "Двигать Мышь И Кликнуть На Элемент" с добавленной проверкой перекрытия элемента в точке клика:

    _SELECTOR = " \u003eCSS\u003e .catalog-menu \u003e .green-button";
    wait_element_visible(_SELECTOR)!
    _call(_random_point, {})!
    _if(_result().length > 0, function () {
        move({})!
        get_element_selector(_SELECTOR, false).clarify(X, Y)!
        _call(_clarify, {})!
        get_element_selector(_SELECTOR, false).script("document.elementFromPoint(" + X + ", " + Y + ") == self")!
        _cycle_params().if_else = (_result() == "true");
        _if(_cycle_params().if_else, function () {
            log("Клик")
            mouse(X, Y)!
        })!
        _if(!_cycle_params().if_else, function () {
            log("Элемент для клика скрыт другим элементом")
        })!
    })!
    

    Тестовый скрипт

    Для удобства использования можно создать свой модуль с этим кастомным действием.

    Подскажите пожалуйста что указать в качестве селектора если мне надо сделать клик в ссылку с текстом "ссылка" ? У ссылки никаких class нет