Глоссарий
Автоматизация браузера
Автоматизация браузера это управление настоящим браузером из кода, когда страницы открываются без человека за клавиатурой.
Что на самом деле шлёт управляющий
Управляющий это программа, которая держит одну связь с работающим браузером и говорит с ним приказами. Переходы, нажатия, ввод и код страницы едут этой же одной дорогой.
- 1
Сперва находит браузер
Браузер, готовый принимать приказы, объявляет свой адрес, и управляющий читает этот адрес раньше всего остального.
- 2
Шлёт по одному приказу
Каждый приказ называет свою цель и ждёт ответа, поэтому порядок действий совпадает с порядком, который вы написали.
- 3
Читает страницу обратно
Текст, значения и снимки возвращаются той же связью, и только благодаря этому прогон вообще даёт итог.
Ваш браузер прямо сейчас
Значения прочитаны в том браузере, в котором вы это читаете. Первую строку почти любая проверка на робота смотрит раньше прочих.
Ваша машина прямо сейчас
- Признак управления
- измеряем на вашей машине
- Строка браузера
- измеряем на вашей машине
- Заявлено дополнений
- измеряем на вашей машине
- Ядер у процессора
- измеряем на вашей машине
Прочитано в вашем браузере и показано здесь. Никуда не отправляется.
Два места для этой работы
Шаги собираются внутри программы, либо ваш собственный код ведёт профиль снаружи. Разница не в удобстве, а в том, как выглядит браузер во время прогона.
Собрано в программе
Шаги выбираются из готового набора видов и сохраняются сценарием, а ведёт профиль сама программа.
Написано вашим кодом
Ваша программа просит открыть профиль и подключается к управляющему адресу, который придёт в ответ.
Начато чем-то ещё
Расписание внутри программы или вызов с вашего сервера запускает сохранённый сценарий по названным профилям.
Что выдаёт прогон
Выдают три вещи, и лишь одна из них про отпечаток. Читают их порознь, поэтому закрытая одна оставляет две другие настежь.
Признак управления
Открытый управляющий канал заставляет Chromium объявить, что браузером правят, и одно это значение кончает проверку раньше отпечатка.
Области, включённые при подключении
Части протокола ставят внутри браузера наблюдателей, которых код страницы умеет замечать, и ряд проверок больше ничего и не ищет.
Само поведение
Прямые дорожки указателя, одинаковые паузы и нечеловеческая скорость это приметы, до которых ключ запуска не достаёт.
Как профиль ведут здесь
На основном движке каждый открытый профиль получает свой управляющий адрес, привязанный к этому компьютеру и ведущий ровно к этому профилю. Живёт он ровно столько, сколько живёт окно.
Адрес принадлежит одному профилю
Браузер записывает его в собственный каталог этого профиля при запуске, и за пределы профиля адрес не ведёт.
Выдать его наружу это отдельное решение
Ваша программа узнаёт адрес через локальный интерфейс, а тот выключен, пока вы сами его не включите в окне.
Дальше каждый вызов несёт пропуск
При первом запуске программа пишет себе случайный пропуск, и вызов без него получает отказ вместо профиля.
Часто путают с этим
Записывалка действий
Записывалка хранит увиденное и повторяет его потом. Здесь ваши действия так не сохраняются, а сценарий собирается из выбранных вами шагов.
Браузер без окна
Работа без окна это выбор при запуске, а не способ управления. Прогон идёт одинаково и так, и так.
Набор для испытаний
Набор решает, что считать успехом. Управление под ним идёт тем же каналом при любом приговоре.
Чего это не делает
- Это не делает прогон похожим на человека. Время, дорожки указателя и порядок действий читаются сами по себе, и ни один ключ запуска до них не достаёт.
- Это не превращает ваши действия в сценарий. Шаги выбираются из готового набора видов и сохраняются списком, а сделанное вами руками в сценарий не попадает.
- Это не достаёт до закрытого профиля. Управляющий адрес рождается вместе с окном и пропадает вместе с ним, поэтому сценарий берёт свежий при каждом запуске.
- Это не ездит между компьютерами. Адрес остаётся на той машине, где открыт профиль, и дальше его никто не объявляет.
Проверить
За каждой строкой выше стоит файл, который можно открыть, и стенд, который его держит.
- Клиент, ведущий профиль, и две области, которых он не включает никогда
- apps/desktop/src/lib/cdp.js
- Признак управления читается с настоящей страницы в настоящем движке
- apps/desktop/test/webdriver-flag.js
- Порт уровня программы открывается только для того движка, которому он нужен
- apps/desktop/src/main/main.js · apps/desktop/test/cdp-port-only-when-needed.js
- Виды шагов, которые держит сценарий, и живой прогон на собранном движке
- apps/desktop/src/lib/rpa.js · apps/desktop/test/сценарий-живьём.js
Вопросы
- Библиотека вообще нужна?
- Нет. Сценарии, собранные в программе, умеют открывать, ждать, нажимать, вводить, забирать значения и повторять, и работают без единой строки кода.
- Профиль под управлением отличается от профиля, которым работают руками?
- Может отличаться. Признак снимается при запуске, а сборщик сценариев заметных областей не трогает, поэтому выдать вас остаётся только поведению.
- Может ли прогон идти без окна?
- Да. Отдельный прогон можно попросить провести без окна, а когда не просят ни о чём, решает настройка самого профиля.
- Управляющий канал слушает всё время?
- Нет. Он принадлежит открытому окну профиля и исчезает вместе с ним, поэтому для профиля, которым вы не работаете, не слушает ничто.
- Кто ещё, кроме меня, может начать прогон?
- Расписание внутри программы, ваша собственная программа через локальный интерфейс или помощник через встроенный сервер, который зовёт те же ходы.
Рядом с этим
Соберите сценарий или подключите свой код
Обе дороги есть в каждой сборке, и обе ведут один профиль одним каналом.