Отпечатки

Политика Device Pixel Ratio с --bot-dpr

Выберите масштаб дисплея profile, real или advanced для сессий BotBrowser и сохраняйте согласованный DPR в десктопных, мобильных и поконтекстных сценариях.

Документация

Нужна структурированная документация по теме Отпечатки?

Эта статья относится к редакционной библиотеке. Для пошаговой настройки, справки и постоянных обновлений переходите сразу в соответствующий раздел docs.

Масштаб дисплея входит в идентичность

window.devicePixelRatio сообщает странице, сколько физических пикселей приходится на один CSS-пиксель. Офисный ноутбук обычно сообщает 1 или 1.25, MacBook с Retina сообщает 2, а многие телефоны сообщают 3. Это же значение используется в CSS-медиазапросах разрешения, при выборе адаптивных изображений и в расчетах макета, поэтому оно идет вместе с остальной идентичностью дисплея: размером экрана, размером окна и глубиной цвета.

Когда профиль описывает один дисплей, а монитор хоста другой, сессия несет сразу две версии дисплея. BotBrowser 152.0.7977.76 добавляет --bot-dpr, чтобы этот выбор был явным, а не определялся машиной, на которой запущен браузер.

Три режима

РежимКогда использоватьРезультат
profileИдентичность дисплея должна задаваться профилемИспользует масштаб дисплея из профиля. По умолчанию.
realСессия должна следовать дисплею хостаИспользует масштаб дисплея хоста.
advancedМасштабы хоста и профиля невозможно согласоватьИспользует резервный режим совместимости для этого сценария.

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

Политика device pixel ratio Одна политика запуска выбирает источник масштаба дисплея: профиль, дисплей хоста или резервный режим совместимости. --bot-dpr одна политика на сессию profile: масштаб профиля real: масштаб хоста advanced: режим совместимости Идентичность дисплея DPR, окно, экран и медиазапросы согласованы

Запуск

chromium-browser \
  --bot-profile="/path/to/profile.enc" \
  --bot-dpr=profile

Переключитесь на real, когда дисплей хоста и есть целевое окружение, например в headful-сессии на рабочей станции, которая представляет собственный монитор оператора:

chromium-browser \
  --bot-profile="/path/to/profile.enc" \
  --bot-dpr=real

advanced служит резервным режимом совместимости, а не режимом повышенной точности. Он сохраняет масштаб профиля с ограниченной подстройкой макета вместо масштабирования всей страницы. Для сессий на основе профиля предпочитайте profile, а real используйте, когда дисплей хоста выбран намеренно. Применяйте advanced только тогда, когда не подходит ни один из них, и не меняйте профиль, версию браузера и конфигурацию запуска во время его оценки.

Используйте вместе с окном и экраном

DPR, окно и экран образуют одну конфигурацию дисплея. Меняйте их вместе, а не по одному между запусками.

chromium-browser \
  --bot-profile="/path/to/profile.enc" \
  --bot-dpr=profile \
  --bot-window=profile \
  --bot-screen=profile

Десктопные headful-сессии по умолчанию используют размеры окна и экрана хоста. Если headful-сессия должна сообщать размеры из профиля, задайте --bot-window=profile и --bot-screen=profile рядом с --bot-dpr=profile. Флаги размеров описаны в руководстве по экрану и окну, а мобильные профили в статье об эмуляции устройств.

Поконтекстные сессии

При поконтекстных отпечатках задавайте --bot-dpr до того, как BrowserContext создаст первую страницу или worker. Политика остается привязанной к поведению дисплея и макета этого контекста на все время его жизни.

const { browserContextId } = await client.send('Target.createBrowserContext', {
  botbrowserFlags: [
    '--bot-profile=/path/to/profile.enc',
    '--bot-dpr=profile'
  ]
});

Используйте один и тот же режим для основного браузера и поконтекстного профиля, когда они представляют одно устройство. Выбирайте другой режим только тогда, когда контекст намеренно представляет другое окружение дисплея. Жизненный цикл контекстов подробнее описан в статье о масштабировании контекстов браузера.

Проверка

  1. Запустите сессию с выбранным профилем и одним режимом DPR.
  2. Не меняйте окно, экран и DPR на протяжении всей проверки.
  3. Запустите вторую сессию с тем же профилем и режимом и убедитесь, что поведение дисплея совпадает.
  4. При сравнении режимов меняйте только --bot-dpr и записывайте полную команду запуска для каждого прогона.

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

Устранение неполадок

СитуацияДействие
Ожидается поведение дисплея из профиля--bot-dpr=profile
Сессия должна следовать дисплею хоста--bot-dpr=real
Масштабы хоста и профиля невозможно согласовать--bot-dpr=advanced
Дисплей различается между контекстамиЗадайте режим до того, как каждый контекст создаст страницы или workers
Headful-размеры следуют хостуДобавьте --bot-window=profile и --bot-screen=profile

Полное описание флага находится в справочнике флагов CLI.

#Device Pixel Ratio#Dpr#Display#Screen#по контекстам#Chromium 152

Переведите BotBrowser из исследований в продакшн

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