Глоссарий
Playwright
Playwright это открытая библиотека, которая ведёт браузеры Chromium, Firefox и WebKit одним набором приказов.
Что умеет библиотека
Один набор приказов достаёт до трёх семейств браузеров, и тот же сценарий существует сразу на нескольких языках. Ожидание встроено в каждый шаг, а не оставлено вам на ручные паузы.
Три семейства движков
Chromium, Firefox и WebKit отвечают на одни и те же приказы, поэтому написанный однажды сценарий переезжает между ними.
Несколько языков
Те же приказы есть для JavaScript, Python, Java и C sharp, поэтому выбор языка не означает выбора средства.
Ожидание вместо сна
Шаг держится, пока нужный ему узел не появится, и медленная страница даёт медленный прогон, а не сорванный на пустом месте.
Как подключить её к профилю здесь
Профиль здесь не тот браузер, который запустила библиотека, поэтому она подключается, а не запускает. Профиль открывает программа и отвечает адресом для подключения.
- 1
Включите локальный интерфейс
Он выключен, пока вы этого не сделаете, а потом окно программы покажет адрес и пропуск для вашего сценария.
- 2
Попросите программу открыть профиль
В ответе придёт адрес гнезда, принадлежащий ровно этому профилю, если выбран основной движок.
- 3
Подключитесь по этому адресу
Библиотека цепляется к уже работающему браузеру, и видит она те вкладки, которые в этом профиле уже открыты.
Ваш браузер прямо сейчас
Значения прочитаны в том браузере, в котором вы это читаете. У ведомого браузера первая строка истинна, пока её не снимут при запуске.
Ваша машина прямо сейчас
- Признак управления
- измеряем на вашей машине
- Строка браузера
- измеряем на вашей машине
- Языки
- измеряем на вашей машине
Прочитано в вашем браузере и показано здесь. Никуда не отправляется.
Чего стоит подключение
Библиотека включает две заметные области в тот же миг, когда подключается. Эти области ставят внутри Chromium наблюдателей, которых код страницы умеет замечать.
Сборщик сценариев внутри программы не включает их никогда, поэтому ведомый им профиль выглядит как профиль, которым работают руками.
Сказать раньше, чем это скажет площадка
Работа без окна
Прогон можно попросить провести вовсе без окна, и это ровно то, чего хочет ночной сценарий на сервере. Когда не просят ни о чём, решает настройка самого профиля.
Движок при этом всё равно представляется обычным браузером, потому что строка опознания ставится при запуске, а не выводится из режима.
Часто путают с этим
Puppeteer
Библиотека постарше, на Node и с прицелом на семейство Chromium, и подключается она здесь ровно той же дорогой.
Запускалка испытаний
Запускалка решает, что считать успехом. Управление под ней идёт тем же каналом, что бы она ни решила.
Здешний сборщик сценариев
Сборщик собирает шаги внутри программы, ведёт профиль сам и заметных областей не трогает.
Чего это не делает
- Она не приезжает вместе с ARMANOS. Библиотеку вы ставите сами и сами её обновляете, а программа её не скачивает и не закрепляет на версии.
- Она не запускает наш движок за вас. Профиль открывает программа, уже с его отпечатком и его прокси, а библиотека цепляется к тому, что работает.
- Она не прячет того, что включает. Две заметные области включаются в миг подключения, и площадка, которая их ищет, их найдёт, какой бы хороший отпечаток ни был у профиля.
- Она не достаёт до закрытого профиля. Адрес рождается вместе с окном и пропадает вместе с ним, поэтому сценарий просит свежий при каждом запуске.
Проверить
За каждым утверждением выше стоит файл, который можно открыть, и стенд, который идёт.
- Рабочие примеры, которые открывают профиль и подключаются к нему
- apps/web/test/страница-автоматизации.js
- Ход, который открывает профиль и отвечает его адресом
- apps/desktop/src/lib/local-api.js · apps/desktop/test/local-api-gate.js
- Где профиль объявляет свой адрес и как его подхватывает управляющий
- apps/desktop/src/lib/forkPage.js
- Собственное управление программы и две области, которых оно не включает
- apps/desktop/src/lib/cdp.js
Вопросы
- По какому адресу она подключается?
- По тому, который профиль объявляет при открытии. Программа отдаёт этот адрес в ответе на просьбу открыть профиль, и принадлежит он только этому профилю.
- Программа обязана работать?
- Да. Адрес принадлежит открытому окну профиля, а локальный интерфейс, который его выдаёт, живёт внутри программы и работает, только пока она открыта.
- Можно ли вести здесь профили Firefox или WebKit?
- Нет. Профили здесь работают на движке из семейства Chromium, поэтому в деле только эта часть библиотеки. Две другие для браузеров, которых мы не собираем.
- Увидит ли площадка, что библиотека подключена?
- Наблюдателей, которых она ставит при подключении, увидеть можно, и проверки на роботов именно их и ищут. Имя самого средства канал о себе не сообщает.
- Может ли прогон начаться без окна?
- Да. Просьба принимается разово и на один этот прогон, и берут её и в теле вызова, и в строке адреса.
Откройте профиль и подключитесь к нему
Включите локальный интерфейс, откройте профиль из своего сценария и подключитесь по тому адресу, который придёт в ответ.