@true_story
Снимок.JPG
Модальные окна, как их обрабатывать
-
@Fox у меня такая же тема и я пока болт забил на этот трабл. Скорее всего человек греет профиля.
По твоему примеру можно всего лишь прочекать элемент и закрыт он или нет, но как тогда закрыть все эти окна на сайте не зная их селектора? Так окно можно вылезти во фрейме, либо с параметром z индекс и т.д Есть конечно костыль закрыть эту вкладку с сайтом если мы поймали такую ситуацию, но это костыль и создаст не очевидные баги. На самом деле окна никакого не было, просто парочку элементов было скрыто.
-
@FastSpace said in Модальные окна, как их обрабатывать:
По твоему примеру можно всего лишь прочекать элемент и закрыт он или нет, но как тогда закрыть все эти окна на сайте не зная их селектора? Так окно можно вылезти во фрейме, либо с параметром z индекс и т.д Есть конечно костыль закрыть эту вкладку с сайтом, но это костыль.
Находить и закрывать такие элементы не так просто как кажется и врядли кто-то будит заниматься ради благой кармы ))
-
@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("Элемент для клика скрыт другим элементом") })! })!Тестовый скрипт
Для удобства использования можно создать свой модуль с этим кастомным действием.
-
@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
- Если элемент находиться не видимой зоны экрана = false
- Если элемент имеет часть внутри развертки элемента, тоже false. Шас только что элемент кнопки на ютубе отдал false :( хотя кнопку видно 100% и ничего не закрывает.
-
@UserTrue said in Модальные окна, как их обрабатывать:
@FastSpace да поэтому у меня это сделано немного по-другому. Я получаю ссылки и проверяю их на доступность, но делаю это все скриптом в браузере, поэтому хоть 500 ссылок проверяет очень быстро.
Только шас дошло, типо ты как попал на страницу сразу чекаешь кучу ссылок и если ну прям все закрыто, то только это значит их что-то закрыло?
-
@FastSpace ну он показал вам куда смотреть ))