Базовая автоматизация
#
Для кого это?#
Общие сведенияБраузерные профили, основанные на движке Anty, можно запустить со включенным DevTools Protocol.
Это означает, что после запуска профиля, к нему можно подключиться через сгенерированный при старте порт и получить возможность к автоматизации браузера с помощью таких инструментов, как Puppeteer, Playwright, Selenium и пр. Подробнее о DevTools protocol.
Таким образом базовая автоматизация состоит из трех шагов:
- Запустить профиль через API со включенным DevTools Protocol
- Подключиться к порту профиля с помощью инструмента автоматизации (Puppeteer, Playwright, Selenium и пр.)
- Запустить свой собственный скрипт автоматизации через открытое соединение
#
Шаг 1. Старт профиля через API#
URL запросаДля старта браузерного профиля через API необходимо послать GET-запрос по адресу http://localhost:3001/v1.0/browser_profiles/PROFILE_ID/start?automation=1
#
Важные моментыЛокальный API работает только при запущенной программе Dolphin Anty
Даный запрос нужно посылать с компьютера, на котором запущен Dolphin Anty
2.1 В дальнейшем планируется реализовать возможность запуска профилей по API удаленно
PROFILE_ID
- ID браузерного профиля. Узнать ID профиля можно путем запроса списка профилей через Remote APIautomation=1
- обязательный параметрНа данный момент локальный API работает всегда на 3001 порту
#
Ответ APIЕсли профиль был запущен успешно, то в ответ придет примерно следующая структура (значения полей port
и wsEndpoint
примерные):
{ "success": true, "automation": { "port": 50568, "wsEndpoint": "/devtools/browser/c71c1a9d-f07c-4dd9-84a9-53a4c6df9969" }}
#
Шаг 2. Подключение к профилю#
PuppeteerPuppeteer - одна из наиболее распространенных библиотек для тестирования пользовательских интерфейсов в браузере. Разработкой и поддержкой данной библиотеки занимаются ребята из Google.
Изначальное предназначения инструмента - запустить браузер и пройтись автоматически по элементам интерфейса, чтобы проверить, все ли в порядке.
Побочный функционал библиотеки - практически неограниченные возможности к совершению почти любых действий на веб-страницах.
Требует знания стека JavaScript/Node.js
const puppeteer = require('puppeteer-core');
(async () => { // СЮДА ВАШ port const port = 50568;
// СЮДА ВАШ wsEndpoint const wsEndpoint = '/devtools/browser/c71c1a9d-f07c-4dd9-84a9-53a4c6df9969';
// НЕПОСРЕДСТВЕННО ПОДКЛЮЧЕНИЕ const browser = await puppeteer.connect({ browserWSEndpoint: `ws://127.0.0.1:${port}${wsEndpoint}` });
// С ЭТОГО МОМЕНТ АВТОМАТИЗИРУЕМ, ЧТО ХОТИМ // НАПРИМЕР, СНИМАЕМ СКРИНШОТ С ГУГЛА const page = await browser.newPage(); await page.goto('https://google.com'); await page.screenshot({ path: 'google.png' });
await browser.close();})();
#
PlaywrightПо сути говоря, Playwright - более свежий и современный аналог Puppeteer. Разрабатывается Microsoft. Имеет схожий функционал и синтаксис.
const { chromium } = require('playwright');
(async () => { // СЮДА ВАШ port const port = 50568;
// СЮДА ВАШ wsEndpoint const wsEndpoint = '/devtools/browser/c71c1a9d-f07c-4dd9-84a9-53a4c6df9969';
// НЕПОСРЕДСТВЕННО ПОДКЛЮЧЕНИЕ const browser = await chromium.connectOverCDP(`ws://127.0.0.1:${port}${wsEndpoint}`);
// С ЭТОГО МОМЕНТ АВТОМАТИЗИРУЕМ, ЧТО ХОТИМ // НАПРИМЕР, СНИМАЕМ СКРИНШОТ С ГУГЛА const page = await browser.contexts()[0].newPage(); await page.goto('https://google.com'); await page.screenshot({path: 'google.png'}); await browser.close();})();
#
SeleniumПодключение Selenium к уже запущенному инстансу браузера описано в этой статье.
#
Шаг 3. Остановка профиля через APIДля остановки браузерного профиля через API необходимо послать GET-запрос по адресу http://localhost:3001/v1.0/browser_profiles/PROFILE_ID/stop