Задать вопрос
@Only4You

Можно ли заменить кликанье мышью по веб-интерфейсу cli-командой?

Имеется одноплатник orange pi с веб-сервисом и одной простой страницей, с которой происходит управление неким устройством по локальной сети.
Для того, чтобы активировать устройство, необходимо перевести радиокнопку в положение "включить" и нажать кнопку "подтвердить", для отключения соответственно радиокнопка в положение "выключить" и снова "подтвердить", что на мой взгляд чудовищно неудобно.
Хотелось бы включать и отключать устройство по определенным триггерам через wget или http запросы, как например IP-реле. Вопрос в том, можно ли как-то узнать что и куда передается при "включении" и отключении" и перевести это в консольную команду? Производитель не желает сотрудничать в данном вопросе.
  • Вопрос задан
  • 1001 просмотр
Подписаться 3 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Смотрите в консоли браузера, что передаётся со страницы в устройство. Потом делайте аналогичные запросы, например, через curl.
Ответ написан
@rPman
Тут уже ответили, предлагают провести реверсинженеринг кода с целью симулировать запросы вне браузера. Это будет просто если разработчик веб приложения не потратил усилия для защиты от этого (зачастую в запрос включаются поля, значения которых формируются не простым кодом на javascript, и сложность повторения которого вне браузера обычно основа защиты).

Если же выявить по простому такой запрос не просто, то можно просто симулировать нажатия на кнопки на javascript прямо в браузере, инжектнув свой код с помощью, на выбор, расширения (tempermonkey/greasemonkey) или вставив свой код прямо в консоль разработчика (это работает только для single page application, иначе при обновлении страницы придется повторять) или используя средства автоматизации самого браузера (на его основе сделан selenium, его и использовать, это когда твой код запускает браузер и в нем выполняет действия). Я рекомендую tempermonkey.

Обычно достаточно узнать css селектор требуемого элемента (например в консоли разработчика, в инспекторе, правая кнопка на нужном элементе, копировать как css-selector) и выполнить что то типа $('css-selector').click(). Чуть сложнее в этом случае реализовать взаимодействие своего кода вне браузера с кодом внутри браузера, самое простое - поднять свой веб сервер (он тоже должен быть https, если целевое веб приложение его использует либо настроить браузер на обход запрета смешивания http и https контента, не делайте так для рабочего браузера, это не безопасно, но для использования только одного веб приложения это безопасно), к которому из javascript можно делать запросы на получение команд и отправку результата (если это сбор данных).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы