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

Глоссарий

Selenium

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

Selenium это открытый набор средств, который ведёт браузеры по WebDriver, общему перечню приказов от отдельной программы-водителя.

Что лежит под ней

Ваш сценарий говорит не с браузером. Он говорит с небольшой программой-водителем, а та уже говорит с браузером так, как нужно этому браузеру.

  • Водитель посередине

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

  • Много языков и один перечень приказов

    Java, Python, C sharp, Ruby и JavaScript шлют одни и те же приказы, и поэтому на этой дороге написано столько старых наборов.

  • Опубликованный общий уговор

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

Как подключить её к профилю здесь

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

  1. 1

    Включите локальный API

    Он выключен, пока вы не нажмёте в программе «Для программистов > Включить локальный API», а после этого экран покажет адрес и токен доступа.

  2. 2

    Откройте профиль и прочтите порт

    В ответе придёт номер порта, и на ARMANOS Browser этот порт принадлежит ровно одному профилю.

  3. 3

    Направьте водителя на этот адрес

    Водителю говорят пользоваться уже существующим адресом отладки, а не запускать что-либо самому.

Ваш браузер прямо сейчас

Значения прочитаны в том браузере, в котором вы это читаете. Первая строка носит имя этого самого уговора, и почти любая проверка на робота смотрит её первой.

Ваша машина прямо сейчас

navigator.webdriver
измеряем на вашей машине
User agent
измеряем на вашей машине
Платформа
измеряем на вашей машине

Прочитано в вашем браузере и показано здесь. Никуда не отправляется.

Что придётся принести самому

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

  • Программа-водитель

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

  • Совпадение версий

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

  • Сама обвязка

    Готовые примеры написаны для библиотек, которые говорят по каналу напрямую, поэтому эту дорогу вы собираете сами.

Подключение водителя не выдаёт профиль

Браузер, запущенный водителем, обычно объявляет, что им управляют, и одно это значение кончает проверку раньше всего прочего.

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

Поведение всё равно читают отдельно

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

Часто путают с этим

  • Флаг, носящий её имя

    Значение, которое читает страница, названо по этому уговору, но ставит его и вторая дорога. Имя это история, а не изготовитель.

  • Puppeteer

    Та библиотека говорит по собственному каналу браузера без водителя посередине и цепляется прямо к адресу профиля.

  • Облачная сетка машин

    Сетка раскладывает набор испытаний по многим машинам. На каждой из них всё равно работают один водитель и один браузер.

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

  • Она не приезжает вместе с ARMANOS. Программы-водителя в сборке нет, здесь её никто не скачивает и никто не проверяет, какая версия у вас.
  • Она не открывает ARMANOS Browser с вашим профилем. Водитель, которому дали запустить браузер самому, получит обычный браузер, без отпечатка, прокси и куки, из которых профиль и состоит.
  • У неё нет готового примера в программе. Готовые примеры подключаются по каналу напрямую, а эту дорогу вы строите из порта, пришедшего в ответе.
  • Она не достаёт до закрытого профиля. Порт открывается вместе с окном и пропадает вместе с ним, поэтому набор просит свежий при каждом запуске.

Проверить

За каждой строкой выше стоит файл, который можно открыть, и стенд, который его держит.

Ключи запуска каждого профиля, включая тот, что снимает признак
apps/desktop/src/lib/forkEngine.js
Признак управления читается с настоящей страницы в настоящем движке
apps/desktop/test/webdriver-flag.js
Ход открытия профиля, порт в его ответе и застава перед ним
apps/desktop/src/lib/local-api.js · apps/desktop/test/local-api-gate.js
Где профиль объявляет порт, который он слушает
apps/desktop/src/lib/forkPage.js

Вопросы

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

Возьмите настоящий профиль в свой набор испытаний

Включите локальный API, откройте профиль из кода и отдайте порт тому водителю, который у вас уже есть.