#
Введение
Если вы использовали приложение 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 таким образом, что если какой-либо шаг завершается ошибкой, вы получаете ответ, который не требует пояснений. Все коды ошибок задокументированы, и вы почти всегда получаете сообщение об ошибке с описанием того, почему шаг не удался.