#
Введение
Если вы использовали приложение Surfinite и просмотрели вкладку «Сеансы», то вы, вероятно, видели, что эти сеансы состоят из 5 шагов:
%%{init: { 'theme': 'base' } }%% flowchart LR A(1. Старт профиля) --> B(2. Скачивание папки) B --> C(3. Запуск браузера) C --> D(4. Загрузка папки) D --> E(5. Остановка профиля)
Эти шаги будут подробно объяснены далее в этом руководстве.
#
Как работают альтернативные продукты
Если вы использовали альтернативы, то уже знаете, что их ход действий похож, за исключением одного важного момента - они группируют большую часть шагов в один, не позволяя контролировать полный процесс ради простоты использования:
%%{init: { 'theme': 'base' } }%% flowchart LR b0(Ваш код) b5(Ваш код) subgraph Альтернативные продукты не позволяют контролировать эти шаги b1(Запуск) b3(Скачивание папки) b4(Открытие браузера) b1-->b3-->b4 end b0-->b1 b4-->b5
Более того, они также не позволяют управлять остановкой браузера:
%%{init: { 'theme': 'base' } }%% flowchart LR b0(Ваш код) b4(Ваш код) subgraph Альтернативные продукты не позволяют контролировать эти шаги b1(Закрытие браузера) b2(Загрузка папки) b3(Удаление папки) b1-->b2-->b3 end b0-->b1 b3-->b4
Мы рассматриваем это как плохое дизайнерское решение, поскольку вы не можете просмотреть или изменить папку профиля перед открытием браузера, а также после закрытия браузера.
#
Наш подход
В отличие от альтернативных продуктов, мы решили разделить каждую операцию, чтобы вы отвечали за все эти шаги, и мы сделали это по двум основным причинам:
Теперь у вас есть полный контроль над каждым шагом, что позволяет вам точно настроить его под ваш вариант использования наиболее эффективным способом. Благодаря нашему подходу вам действительно предлагается:
- Чтение или изменение файлов cookie до и после запуска браузера.
- Пропустить скачивание или загрузку папкт профиля (вы можете хранить папки профиля локально или где-либо еще)
- Загрузите свои расширения, поместив их в папку профиля (API не требуется)
- Запустите браузер с настраиваемыми [command line switches] (https://peter.sh/experiments/chromium-command-line-switches/).
Теперь более понятно, какой шаг завершился с ошибкой в случае неудачного запуска. Вы сталкивались с тем, что альтернативные продукты просто отвечают «400 Bad Request» или «500 Internal Server Error» и не предоставляют информации о том, что пошло не так?
Мы разработали наш API таким образом, что если какой-либо шаг завершается ошибкой, вы получаете ответ, который не требует пояснений. Все коды ошибок задокументированы, и вы почти всегда получаете сообщение об ошибке с описанием того, почему шаг не удался.