Получение цвета элемента через "пипетку"



  • Привет разработчикам.
    Предыстория: Допустим, нам необходимо сделать "проверку кнопки Follow" . Какие варианты есть сейчас?
    1)Проверить наличие сообщества в разделе "отслеживаемое" через профиль. Очень долгий вариант т.к. нужно узнать название сообщества/канала, зайти в профиль, открыть подписки и тд..
    2)Через логику проверить существование элемента. Здесь тоже проблемы. На части ресурсов, кнопка фоллоу не пропадает, следовательно она существует всегда и чаще всего, она имеет одно и тоже название, один и тот же размер, либо одну и туже иконку и лишь меняет цвет. Отсюда третий вариант.
    3) Проверить кнопку по цвету. Варианты нахождения цвета таковы - либо грузить год элемента и в css искать колор, либо делать скриншот и через скриншот определять цвет пикселя. Данные функции хорошо работают, но слишком много действий, а как известно, чем больше действий - тем сложнее оптимизировать скрипт и тем сильнее грузится система...
    А теперь суть вопроса и предложения: есть возможность сделать функцию "Получение цвета элемента через пипетку"? То есть в меню быстрых действий помимо все возможных движений мыши, кликов , прокруток и тд, добавить пипетку, которая сразу будет делать одним действием скриншот выбранного элемента и в переменную сохранять код цвета, чтоб дальше только бери код цвета из переменной и делай сравнение?



  • @rebootsolo said in Получение цвета элемента через "пипетку":

    Привет разработчикам.
    Предыстория: Допустим, нам необходимо сделать "проверку кнопки Follow" . Какие варианты есть сейчас?
    1)Проверить наличие сообщества в разделе "отслеживаемое" через профиль. Очень долгий вариант т.к. нужно узнать название сообщества/канала, зайти в профиль, открыть подписки и тд..
    2)Через логику проверить существование элемента. Здесь тоже проблемы. На части ресурсов, кнопка фоллоу не пропадает, следовательно она существует всегда и чаще всего, она имеет одно и тоже название, один и тот же размер, либо одну и туже иконку и лишь меняет цвет. Отсюда третий вариант.
    3) Проверить кнопку по цвету. Варианты нахождения цвета таковы - либо грузить год элемента и в css искать колор, либо делать скриншот и через скриншот определять цвет пикселя. Данные функции хорошо работают, но слишком много действий, а как известно, чем больше действий - тем сложнее оптимизировать скрипт и тем сильнее грузится система...
    А теперь суть вопроса и предложения: есть возможность сделать функцию "Получение цвета элемента через пипетку"? То есть в меню быстрых действий помимо все возможных движений мыши, кликов , прокруток и тд, добавить пипетку, которая сразу будет делать одним действием скриншот выбранного элемента и в переменную сохранять код цвета, чтоб дальше только бери код цвета из переменной и делай сравнение?

    support1309.gif



  • @rebootsolo said in Получение цвета элемента через "пипетку":

    Через логику проверить существование элемента. Здесь тоже проблемы. На части ресурсов, кнопка фоллоу не пропадает, следовательно она существует всегда и чаще всего, она имеет одно и тоже название, один и тот же размер, либо одну и туже иконку и лишь меняет цвет.

    Подобное часто можно проверить через атрибут элемента.



  • @Fox said in Получение цвета элемента через "пипетку":

    @rebootsolo said in Получение цвета элемента через "пипетку":

    Привет разработчикам.
    Предыстория: Допустим, нам необходимо сделать "проверку кнопки Follow" . Какие варианты есть сейчас?
    1)Проверить наличие сообщества в разделе "отслеживаемое" через профиль. Очень долгий вариант т.к. нужно узнать название сообщества/канала, зайти в профиль, открыть подписки и тд..
    2)Через логику проверить существование элемента. Здесь тоже проблемы. На части ресурсов, кнопка фоллоу не пропадает, следовательно она существует всегда и чаще всего, она имеет одно и тоже название, один и тот же размер, либо одну и туже иконку и лишь меняет цвет. Отсюда третий вариант.
    3) Проверить кнопку по цвету. Варианты нахождения цвета таковы - либо грузить год элемента и в css искать колор, либо делать скриншот и через скриншот определять цвет пикселя. Данные функции хорошо работают, но слишком много действий, а как известно, чем больше действий - тем сложнее оптимизировать скрипт и тем сильнее грузится система...
    А теперь суть вопроса и предложения: есть возможность сделать функцию "Получение цвета элемента через пипетку"? То есть в меню быстрых действий помимо все возможных движений мыши, кликов , прокруток и тд, добавить пипетку, которая сразу будет делать одним действием скриншот выбранного элемента и в переменную сохранять код цвета, чтоб дальше только бери код цвета из переменной и делай сравнение?

    support1309.gif

    да, это понятно, но если элемент существует всегда? всегда присутствует и всегда в одном месте с одинаковым названием, а по клику на элемент осуществляется js, который просто отправляет команду, например он отправляет команду "click" и уже на стороне сервера происходит обработка условий . Например, мы не зафолловлены и яваскрипт проверяя параметр user_follow подписывает нас на сообщества, присваивая значение тому-же user_follow=1 и меняет цвет кнопки. А если мы уже подписаны, то он проверяет значение переменной и если там "1", то он нас отписывает и снова меняет цвет кнопки. Все эти действия происходят на стороне сервера. А сайт собой представляет обычный воркер для рендера кода страницы



  • @spacerange said in Получение цвета элемента через "пипетку":

    @rebootsolo said in Получение цвета элемента через "пипетку":

    Через логику проверить существование элемента. Здесь тоже проблемы. На части ресурсов, кнопка фоллоу не пропадает, следовательно она существует всегда и чаще всего, она имеет одно и тоже название, один и тот же размер, либо одну и туже иконку и лишь меняет цвет.

    Подобное часто можно проверить через атрибут элемента.

    Допустим, ты получил атрибуты (имя, дивы, классы и тд) , но что если из этого ничего не меняется, пока ты не нажмешь на кнопку? И что делать? кликать на нее? Как минимум придется кликнуть несколько раз в случае, если ты подписан изначально т.к. при клике ты отпишешься (в предыдущем ответе указал пример работы сайта) и придется кликать еще раз если задача стоит именно "подписаться". Также и в обратную сторону, если задача "отписаться", а мы и так не подписаны, то придется кликнуть, получить атрибуты , понять, что мы сделали не верное действие и повторить клик еще раз... А если на сайте стоит детект на подозрительную активность, то это фрод т.к. придётся решать капчу. Да, капчу можно автоматически, но нахера тратить строки скрипта + деньги на капчу , если можно использовать "пипетку" для определения цвета и никуда не щелкать?



  • А там после Нажатия по Подписке не чего не появляется ещё, колокольчика например, подписка на уведомления мол.
    Чего нету пока не Клинешь мол :)



  • @super84 said in Получение цвета элемента через "пипетку":

    А там после Нажатия по Подписке не чего не появляется ещё, колокольчика например, подписка на уведомления мол.
    Чего нету пока не Клинешь мол :)

    к сожалению нет. Да если б и писалось, ситуацию не исправило бы...пришлось бы все равно кликать на кнопку несколько раз. Выше написан ответ, что есть детект действий и кликать не желательно. Суть моего вопроса не в том, что у меня данная проблема, а в том, что это пример, который я привел , как вариант использования данной функции... т.к. пару дней назад дописал скрипт как раз-таки с похожей проблемой. Этот пост сделан как запрос на введение функции пипетки



  • @rebootsolo said in Получение цвета элемента через "пипетку":

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

    У вас просто не хватает опыта по работе с BAS, потому и возникают такие вопросы.
    Практика поможет понять что все что написано выше, решается после 5-6 первых проектов на раз два.



  • @rebootsolo said in Получение цвета элемента через "пипетку":

    ь, ситуацию не исправило бы...пришлось бы все равно кликать на кнопку несколько раз. Выше написан ответ, что есть детект действий и кликать не желательно. Суть моего вопроса не в том, что у меня данная проблема, а в том, что это пример, который я привел , как вариант использования данной функции... т.к. пару дней назад дописал скрипт как раз-таки с похожей проблемой. Этот пост сделан как запрос на введение функции пипетки

    Конкретный сайт приведите где ничего не меняется в стилях, кнопки и невозможно через исходный код проверить цвет. Где в BAS кроме как по вашему пипеткой проблему не решить...

    ФБ, твиттер, вк, ок, все отлично отслеживается есть подписка или нет.



  • @Dodok said in Получение цвета элемента через "пипетку":

    @rebootsolo said in Получение цвета элемента через "пипетку":

    ь, ситуацию не исправило бы...пришлось бы все равно кликать на кнопку несколько раз. Выше написан ответ, что есть детект действий и кликать не желательно. Суть моего вопроса не в том, что у меня данная проблема, а в том, что это пример, который я привел , как вариант использования данной функции... т.к. пару дней назад дописал скрипт как раз-таки с похожей проблемой. Этот пост сделан как запрос на введение функции пипетки

    Конкретный сайт приведите где ничего не меняется в стилях, кнопки и невозможно через исходный код проверить цвет. Где в BAS кроме как по вашему пипеткой проблему не решить...

    ФБ, твиттер, вк, ок, все отлично отслеживается есть подписка или нет.
    вк приводить в пример работа способности...понятненько... с радостью бы скинул ссылку на один китайский борд , где реализовано все так, но увы и ах, лучше его не светить.... К тому же, повторюсь ЭТА СИТУАЦИЯ ПРИВЕДЕНА В ПРИМЕР, ПРОБЛЕМЫ С РЕШЕНИЕМ НЕТ, НО МОЖНО УПРОСТИТЬ РЕШЕНИЕ ДАННЫХ ЗАДАЧ ЧЕРЕЗ ПИПЕТКУ. ВАМ ДОП ФУНКЦИЮ ПРЕДЛАГАЮТ, А ВЫ СРАЗУ ПЫТАЕТЕСЬ РЕШИТЬ ЕЕ И ЧТО-ТО ТАМ ПРО ОПЫТ ГОВОРИТЕ...



  • @rebootsolo said in Получение цвета элемента через "пипетку":

    ЭТА СИТУАЦИЯ ПРИВЕДЕНА В ПРИМЕР, ПРОБЛЕМЫ С РЕШЕНИЕМ НЕТ, НО МОЖНО УПРОСТИТЬ РЕШЕНИЕ ДАННЫХ ЗАДАЧ ЧЕРЕЗ ПИПЕТКУ. ВАМ ДОП ФУНКЦИЮ ПРЕДЛАГАЮТ, А ВЫ СРАЗУ ПЫТАЕТЕСЬ РЕШИТЬ ЕЕ

    Капсом делу не поможешь. Ваша тема правил не нарушает и имеет право быть, остальные пользователи лишь высказали своё мнение на счёт этого нововведения.

    В любом случае, хорошо это или плохо, но разработчик в эту тему не заходит, у него личное видение проекта и он сам решает что и в каком виде нужно разработать и добавить в BAS.



  • @Fox said in Получение цвета элемента через "пипетку":

    @rebootsolo said in Получение цвета элемента через "пипетку":

    ЭТА СИТУАЦИЯ ПРИВЕДЕНА В ПРИМЕР, ПРОБЛЕМЫ С РЕШЕНИЕМ НЕТ, НО МОЖНО УПРОСТИТЬ РЕШЕНИЕ ДАННЫХ ЗАДАЧ ЧЕРЕЗ ПИПЕТКУ. ВАМ ДОП ФУНКЦИЮ ПРЕДЛАГАЮТ, А ВЫ СРАЗУ ПЫТАЕТЕСЬ РЕШИТЬ ЕЕ

    Капсом делу не поможешь. Ваша тема правил не нарушает и имеет право быть, остальные пользователи лишь высказали своё мнение на счёт этого нововведения.

    В любом случае, хорошо это или плохо, но разработчик в эту тему не заходит, у него личное видение проекта и он сам решает что и в каком виде нужно разработать и добавить в BAS.

    да понятно что свое видение..будем надеяться..



  • @rebootsolo said in Получение цвета элемента через "пипетку":

    да, это понятно, но если элемент существует всегда? всегда присутствует и всегда в одном месте с одинаковым названием, а по клику на элемент осуществляется js, который просто отправляет команду, например он отправляет команду "click" и уже на стороне сервера происходит обработка условий .

    Тогда и пипетка вам не поможет, в любом случае нужно будет сделать клик и только после этого проверять как выглядит кнопка. Вам предложили функцию "Поиск по картинке" она как раз и будет искать элемент на экране без привязки к селекторам.

    Сама идея не плохая, вот только не ясно для чего она может пригодиться. Практически всегда изменения на сайте отображаются в коде и более производительный путь работать с ним. А если изменения в коде скрыты можно найти элемент через поиск по картинке. А пипетка как будет работать, сначала нужно найти элемент и потом определять его цвет? Точно так же можно поставить ждать элемент и включить поиск по картинке, будет тоже самое. Разве что может определять цвет будет меньше потреблять ресурсов, но что если кнопка залита не одним цветом, а градиентом или на ней картинка. От дублирующих функций тоже мало хорошего, только захламление интерфейса.


Log in to reply