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

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

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

    По твоему примеру можно всего лишь прочекать элемент и закрыт он или нет, но как тогда закрыть все эти окна на сайте не зная их селектора? Так окно можно вылезти во фрейме, либо с параметром z индекс и т.д Есть конечно костыль закрыть эту вкладку с сайтом, но это костыль.

    Находить и закрывать такие элементы не так просто как кажется и врядли кто-то будит заниматься ради благой кармы ))

    Ты у себя также сделал? Прочекал это окно и если оно есть просто свалил с сайта? Я тут представил как закрывать эту шнягу если она во фрейме. Это надо только заморочиться искать нужный фрейм и проверять элементы там.

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

    Ты у себя также сделал? Прочекал это окно и если оно есть просто свалил с сайта? Я тут представил как закрывать эту шнягу если она во фрейме. Это надо только заморочиться искать нужный фрейм и проверять элементы там.

    Типо того. Я делал закрывалку, но не довел до ума. Закрыть эту шнягу как бы не так просто, могут быть побочные эффекты для сайта, то есть можно его сломать)

  • @UserTrue Ну общие селекторы все таки есть изредка. Типо "Закрыть", "Close". Можно попытаться разок кликнуть туда и если не отпустило, то уже все - валить с сайта. Fox вовремя решение скинул, у меня все руки не доходили это сделать, завтра гляну как оно там.

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

    @UserTrue Ну общие селекторы все таки есть изредка. Типо "Закрыть", "Close". Можно попытаться разок кликнуть туда и если не отпустило, то уже все - валить с сайта.

    Это тоже пробовал, но потом мне стало лень тк для прогрева это не критично и я не стал морочиться сильно

  • @FastSpace 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("Элемент для клика скрыт другим элементом")
        })!
    })!
    

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

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

  • @Fox Это бы в сборочку добавить баса официально.

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

    @Fox Это бы в сборочку добавить баса официально.

    Официально не добавят, я спросил. Но как я и писал выше, можно создать своё действие с этой опцией в кастомном модуле.

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

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

    @Fox Это бы в сборочку добавить баса официально.

    Официально не добавят, я спросил. Но как я и писал выше, можно создать своё действие с этой опцией в кастомном модуле.

    В общем спасибо за решение. Добавил в шаб прогрева, все работает четко. Оказалось таких сайтов не мало ))

  • @FastSpace а чем тебе это решение помогло? Окно же оно не закрывает. У меня подобное решение тоже используется

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

    @FastSpace а чем тебе это решение помогло? Окно же оно не закрывает. У меня подобное решение тоже используется

    Тем что раньше были клики в пустую, сделал что если 5 элементов подряд не видны, значит что-то закрыло их и бот закрывает этот сайт.

  • Чето я поспешил, в общем если элемент находиться вне видимой зоны экрана, то экшен сначала крутит к нему мышку, но то JS скрипт отдасть false типо он скрыт. Также где-то с шансом 1 к 5 срабатывает ложно. Элемент на самом деле виден, но js отдает нет.

    Я бы конечно сам проскролил, но там действие "прокрутка к элементу" палевная, крутит скрол за 1 сек.

  • @FastSpace да поэтому у меня это сделано немного по-другому. Я получаю ссылки и проверяю их на доступность, но делаю это все скриптом в браузере, поэтому хоть 500 ссылок проверяет очень быстро.

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

    @FastSpace да поэтому у меня это сделано немного по-другому. Я получаю ссылки и проверяю их на доступность, но делаю это все скриптом в браузере, поэтому хоть 500 ссылок проверяет очень быстро.

    Кликаешь только по href=xxx? Ну как-то не оч. это.

  • @FastSpace нет, сейчас и по кнопкам и рекламе

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

    @FastSpace нет, сейчас и по кнопкам и рекламе

    Решение от @Fox не работает как надо, пойду курить сайт learn.javascript

    1. Если элемент находиться не видимой зоны экрана = false
    2. Если элемент имеет часть внутри развертки элемента, тоже false. Шас только что элемент кнопки на ютубе отдал false :( хотя кнопку видно 100% и ничего не закрывает.
  • @UserTrue said in Модальные окна, как их обрабатывать:

    @FastSpace да поэтому у меня это сделано немного по-другому. Я получаю ссылки и проверяю их на доступность, но делаю это все скриптом в браузере, поэтому хоть 500 ссылок проверяет очень быстро.

    Только шас дошло, типо ты как попал на страницу сразу чекаешь кучу ссылок и если ну прям все закрыто, то только это значит их что-то закрыло?

  • @FastSpace ну он показал вам куда смотреть ))

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

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

    @FastSpace нет, сейчас и по кнопкам и рекламе

    Решение от @Fox не работает как надо, пойду курить сайт learn.javascript

    1. Если элемент находиться не видимой зоны экрана = false

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

    1. Если элемент имеет часть внутри развертки элемента, тоже false. Шас только что элемент кнопки на ютубе отдал false :( хотя кнопку видно 100% и ничего не закрывает.

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

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

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

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