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

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

    Координаты берутся относительно окна браузера, а не страницы. При использовании кода действия этого не произойдёт, так как проверка идёт после прокуртки страницы, перед кликом.

    В любом случае очень много выдает где false, хотя элемент виден. Попробуй на ютубе, особо там.

  • @FastSpace Ты бы дал конкретную страницу с конкретным селектором. А в противном случае ему это надо? )

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

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

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

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

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

    Чегось? А как кликать по такому элементу?

    Всмысле элемент ничего не закрывает, он просто находиться за пределами видимой области.

    вы про прокрутку страницы или про стиль элемента?

    Прокрутка. Вот я выбрал случайный элемент к которому надо скролить, js код тот выдаст false.

    Координаты берутся относительно окна браузера, а не страницы. При использовании кода действия этого не произойдёт, так как проверка идёт после прокуртки страницы, перед кликом.

    Вот скрипт, где кнопка видна 100%, а JS выдает false
    123.xml

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

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

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

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

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

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

    Чегось? А как кликать по такому элементу?

    Всмысле элемент ничего не закрывает, он просто находиться за пределами видимой области.

    вы про прокрутку страницы или про стиль элемента?

    Прокрутка. Вот я выбрал случайный элемент к которому надо скролить, js код тот выдаст false.

    Координаты берутся относительно окна браузера, а не страницы. При использовании кода действия этого не произойдёт, так как проверка идёт после прокуртки страницы, перед кликом.

    Вот скрипт, где кнопка видна 100%, а JS выдает false
    123.xml

    Дак я же сказал выше, что нужно сделать проверку на дочерний элемент и всё

    Ну у меня простое сравнение html элементов по координатам, напишите функцию проверки является ли один html элемент дочерним другому

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

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

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

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

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

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

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

    Чегось? А как кликать по такому элементу?

    Всмысле элемент ничего не закрывает, он просто находиться за пределами видимой области.

    вы про прокрутку страницы или про стиль элемента?

    Прокрутка. Вот я выбрал случайный элемент к которому надо скролить, js код тот выдаст false.

    Координаты берутся относительно окна браузера, а не страницы. При использовании кода действия этого не произойдёт, так как проверка идёт после прокуртки страницы, перед кликом.

    Вот скрипт, где кнопка видна 100%, а JS выдает false
    123.xml

    Дак я же сказал выше, что нужно сделать проверку на дочерний элемент и всё

    Ну у меня простое сравнение html элементов по координатам, напишите функцию проверки является ли один html элемент дочерним другому

    Выручи плиз 😉 я тот еще кодер.

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

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

  • @FastSpace Костыли твое все, мы и так это знаем xDD

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

    @FastSpace Костыли твое все, мы и так это знаем xDD

    Знаешь и не сказал :D Меня и такое решение устроит
    Единственное, что если там будет тонна текста, это наверно будет забивать оперативу, но поставлю чек на длину текста.

  • @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 нет