Политика 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 используется по умолчанию, поэтому существующие команды запуска сохраняют текущее поведение. Выбирайте другой режим только тогда, когда этого требует развертывание.
Запуск
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'
]
});
Используйте один и тот же режим для основного браузера и поконтекстного профиля, когда они представляют одно устройство. Выбирайте другой режим только тогда, когда контекст намеренно представляет другое окружение дисплея. Жизненный цикл контекстов подробнее описан в статье о масштабировании контекстов браузера.
Проверка
- Запустите сессию с выбранным профилем и одним режимом DPR.
- Не меняйте окно, экран и DPR на протяжении всей проверки.
- Запустите вторую сессию с тем же профилем и режимом и убедитесь, что поведение дисплея совпадает.
- При сравнении режимов меняйте только
--bot-dprи записывайте полную команду запуска для каждого прогона.
В статье Проверка отпечатка браузера перечислены публичные сервисы, которые показывают сообщаемые значения дисплея.
Устранение неполадок
| Ситуация | Действие |
|---|---|
| Ожидается поведение дисплея из профиля | --bot-dpr=profile |
| Сессия должна следовать дисплею хоста | --bot-dpr=real |
| Масштабы хоста и профиля невозможно согласовать | --bot-dpr=advanced |
| Дисплей различается между контекстами | Задайте режим до того, как каждый контекст создаст страницы или workers |
| Headful-размеры следуют хосту | Добавьте --bot-window=profile и --bot-screen=profile |
Полное описание флага находится в справочнике флагов CLI.
Похожие статьи
Переведите BotBrowser из исследований в продакшн
Используйте эти руководства, чтобы понять модель, а затем перейти к кроссплатформенной валидации, изолированным контекстам и масштабируемому браузерному развертыванию.