Перейти к содержимому

Синхронизатор

Синхронизатор окон

Назначьте один открытый профиль ведущим. Всё, что вы нажимаете, печатаете и прокручиваете в его окне, программа повторяет в остальных окнах, пока вы работаете.
1
Ведущих окон
40 мс
Действия ведущего забираются раз в
100-600 мс
Пауза целевого окна перед действием
однозначный
Путь к нажатому элементу

Одно окно ведёт

Синхронизатор живёт в программе, в разделе автоматизации. Вы выбираете один открытый профиль в «Ведущий профиль» и один или несколько открытых в «Целевые профили».

Работу вы по-прежнему делаете своими руками, а программа только переносит её в другие окна. Заранее вы ничего не пишете, и без вас ничего не происходит.

  • Нажатия

    Тот элемент, на который вы нажали левой кнопкой, место курсора в поле и точка внутри окна.

  • Набор текста

    Каждая буква, которую вы напечатали, в поле формы и в поле для текста поста или сообщения.

  • Вставка

    Текст, который вы вставили.

  • Прокрутка

    Насколько вы прокрутили колесом или пальцем.

  • Клавиши

    Ввод, Tab, Backspace, Delete, Esc, стрелки, Home, End, PageUp, PageDown, клавиши вне поля и сочетания Cmd или Ctrl с A и Z.

  • Смена адреса

    Адрес, который вы набрали, и шаг «назад» или «вперёд». За ссылкой целевое окно идёт своим нажатием.

Экран синхронизатора в программе ARMANOS с сообщением, что для работы нужно открыть хотя бы два профиля
Пока у вас открыто меньше двух профилей, программа честно откажет и отправит к списку профилей.

Остальные ваши окна не тронуты

Ваши действия программа берёт внутри самой ведущей страницы, а не слежкой за мышью на уровне системы. Записывает их помощник в своём отдельном мире страницы: у него свои имена и свои слушатели, и код самой страницы их не видит.

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

Едет только ваш ввод

На обоих движках браузер отличает ввод живого человека от поддельного, и едет только ваш.

Что везёт одно действие

Ваше нажатие едет не точкой на экране. С ним едет тот элемент, в который вы попали, и само место нажатия внутри окна, записанное двумя долями.

Из поля уезжают буквы, а не готовое значение: целевой профиль печатает их сам, клавишами, в своём темпе. Прокрутка уезжает расстоянием, а клавиша своим именем.

ЧтоЧто уезжаетЧто делает целевой профиль
НажатиеЭлемент, в который вы попали, точка долями ведущего окна и место курсора в полеВедёт мышь к случайной точке того же элемента и нажимает с удержанием, курсор в поле ставит туда же; элемента нет, нажимает в тех же долях своего окна
Набор текстаБуквы, напечатанные в поле формы или в поле постаПечатает те же буквы клавишами своей раскладки и в своём темпе
ВставкаВставленный текстВставляет тем же сочетанием клавиш; в поле пароля печатает по буквам
ПрокруткаРасстояние, на которое вы прокрутили колесом или пальцемКрутит колесо так, как крутит мышь системы своего профиля, на то же расстояние
КлавишаИмя клавиши и сочетаниеНажимает и отпускает ту же клавишу, Cmd или Ctrl по системе своего профиля
ПереходНабранный адрес или шаг «назад» и «вперёд»Открывает тот же адрес или делает тот же шаг по истории; за ссылкой идёт своим нажатием

Повтор целится в элемент

Окно каждого целевого профиля сначала ищет тот же элемент, докручивает до него колесом и ведёт к нему мышь, а уже потом нажимает. Именно эта дорога выдерживает окно другого размера и вёрстку, съехавшую под объявлением.

Если элемент не нашёлся, в дело идут доли, развёрнутые по ширине и высоте окна самого целевого профиля. У профиля, одетого телефоном, нажатие уходит касанием, а прокрутка смахиванием: настоящий телефон событий мыши не шлёт вовсе.

Перед каждым действием целевой профиль выжидает свою паузу, от 100 до 600 мс, у каждого окна свою. Несколько окон, которые делают одно и то же в одну и ту же миллисекунду, сами по себе связывают профили.

На ARMANOS Browser ведёт видимая вкладка

У профиля часто несколько вкладок: стартовая страница ARMANOS, заданный вами адрес и вкладки, оставленные в прошлый раз. ARMANOS Browser открывает их снова, когда в его настройках выбрано «Ранее открытые вкладки», как у нового профиля. На ARMANOS Browser ведёт та вкладка, на которую смотрите вы, и узнаёт это программа у самих страниц.

  1. 1

    Ведущей становится та, что на виду

    Когда у ведущего несколько вкладок, программа спрашивает у них, какая сейчас на виду, и ведёт первая ответившая. Иначе ведёт одна из вкладок профиля, но не стартовая страница.

  2. 2

    У каждого целевого свой ответ

    Целевой профиль, которому нечем ответить, выбывает до начала сеанса, а если не осталось ни одного, запуск откажет и скажет об этом.

  3. 3

    Ведущее окно готово

    Если приготовить ведущее окно не удалось, сеанс не начнётся: наполовину начатый сеанс выглядел бы работающим и не повторял бы ничего.

  4. 4

    Вы видите счёт

    Полоса состояния показывает, сколько окон идёт следом, и убавляет счёт по мере закрытия окон целевых профилей.

Что едет после запуска

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

Набранный адрес и шаги «назад» и «вперёд» едут той же очередью, что и действия, после них. Переход по ссылке или отправку формы целевое окно повторяет своим нажатием и второй раз ту же страницу не грузит. Пустые страницы, страницы ошибок и адреса отладчика к целевым не уезжают никогда.

Все окна ложатся одной сеткой

Повтор полезен, только если вы видите итог, поэтому программа умеет разложить все открытые окна сеткой. Сетку она строит на том экране, где стоит указатель, внутри его рабочей области.

Клетка не меньше 420 на 320

Столбцов программа берёт квадратный корень из числа окон с округлением вверх и оставляет между клетками зазор в шесть точек. Если клетка вышла бы меньше 420 на 320, она откажет и объяснит причину вместо раскладки, в которой ничего не разобрать.

Окна обоих движков делят одну сетку и потому не ложатся друг на друга. Профиль, запущенный без окна, программа пропустит, а новое место запомнит за профилем, и оно переживёт следующий запуск.

Открыто окон
6
Столбцов и строк
3 на 2
Рабочая область экрана
2560 на 1440
Зазор между клетками
6
Итоговая клетка
845 на 711

Посчитано по той же формуле, что работает у вас в программе. Ниже 420 на 320 на клетку ответом будет отказ, а не сетка.

Руками или сценарием

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

Сценарий нужен там, где работу повторят снова. Написать его дороже, повторить намного дешевле.

Простое правило: больше двух раз пишите сценарий, один раз на пять учётных записей ведите окно.

  • Тот же проход, несколько записей, сейчас

    Синхронизатор. Ничего не надо писать заранее и ничего не остаётся после.

  • Тот же проход, много записей, и снова

    Сценарий с переменными и расписанием.

  • В каждой записи своя работа

    Ни то, ни другое. Откройте профили и работайте в них по отдельности.

Экран «Сценарии» в программе ARMANOS с предложением создать первый сценарий, загрузить сценарий из файла или обновить сценарии из учётной записи
У сценариев свой отдельный экран. Сценарий пишут один раз и запускают снова, а это обратный размен по сравнению с ведением окна руками.

Из ведущего окна уезжает всё

То, что вы печатаете в ведущем окне, попадает к целевым профилям текстом, включая поле пароля. Ведите окно только на тех сайтах и в тех учётных записях, которые вы намеренно трогаете вместе.

Чего это не делает

  • Едут нажатия левой кнопкой, набор текста, вставка текста, прокрутка колесом и пальцем, клавиши и переходы в главном кадре. Перетаскивание, наведение, правая кнопка, выбор файла и действия внутри встроенного кадра не едут.
  • Повтор нацелен, но не проверен. Если у целевого профиля другая вёрстка, другой язык или страница без входа, нажатие уйдёт мимо или в пустоту, и вам об этом никто не скажет.
  • Целевой профиль печатает в своём темпе и отстаёт от вас: длинный текст он допечатывает уже после вас. Выбор в выпадающем списке клавишами повторяется всегда, а мышью только тогда, когда этот список у целевого окна уже в фокусе. ARMANOS Browser, открытый без окна, держит свой буфер обмена, и вставку он печатает по буквам.
  • Окно целевого профиля, целиком закрытое другими окнами, система считает скрытым: оно ждёт и ничего не повторяет, пока его снова видно. Перед сеансом разложите окна кнопкой «Разложить окна».
  • Один сеанс за раз и одно ведущее окно. Запуск другого сеанса останавливает идущий.
  • Ничего не остаётся на диске. Сеанс нельзя выгрузить, проиграть позже или превратить в сценарий.

Как проверить

Утверждения ниже указывают на файл, который их исполняет, и на файл, который их проверяет.

Действия ведущего действительно доезжают до окна целевого профиля и не доезжают до запуска, а после остановки слушателей записи на странице нет
apps/desktop/src/main/main.js · apps/desktop/test/синхронизатор-живьём.js
Целевые окна получают настоящие нажатия, буквы, колесо и вставку, печатают в своём темпе, ждут свою паузу и идут за ссылкой своим нажатием, а буфер обмена возвращается таким, каким был
apps/desktop/src/lib/синхронизатор-повтор.js · apps/desktop/test/синхронизатор-ведомые-настоящими-живьём.js
Страница-ловушка у ведущего и у целевого окна не находит от синхронизатора ни событий от скрипта, ни новых имён, ни вызовов своих функций сверх себя до запуска
apps/desktop/src/injected/агент-записи.js · apps/desktop/test/страница-ловушка-живьём.js
На ARMANOS Browser ведёт видимая вкладка, и выбранные при запуске вкладки служат весь сеанс
apps/desktop/src/main/main.js · apps/desktop/test/синхронизатор-берёт-видимую-вкладку.js
Синхронизатор на обоих движках переносит только события, сделанные человеком, а поддельные нажатие, ввод, клавишу и прокрутку не записывает
apps/desktop/src/injected/агент-записи.js · apps/desktop/test/синхронизатор-ядра-пишет-только-человека.js
Окна ARMANOS Browser действительно переезжают в сетку, и это измерено изнутри страниц
apps/desktop/src/main/main.js · apps/desktop/test/раскладка-живьём.js
Сетка считается сразу для обоих движков и отказывает при слишком мелкой клетке
apps/desktop/src/main/main.js · apps/desktop/test/window-places.js
На ARMANOS Browser вкладки прошлого раза возвращаются так, как выбрано в его настройках, а стартовая страница и адрес профиля не открываются второй раз
apps/desktop/src/lib/сеанс-форка.js · apps/desktop/test/вкладки-не-копятся-между-запусками.js

Вопросы

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

Попробуйте на двух профилях

Откройте два профиля, выберите ведущего, отметьте второй и запустите. Остановка в одно нажатие.