| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
✅ Successfully deployed static |
Sorry, something went wrong.
|
|
||
| Пользовательская среда влияет на то, как приложение выглядит и работает. Один и тот же интерфейс может по-разному вести себя на мобильном экране, при другой локали, в тёмной теме, без доступа к геолокации или при медленном соединении. | ||
|
|
||
| В Testplane эти условия настраиваются несколькими способами: через WebDriver BiDi, обычные WebDriver-команды, CDP и capabilities браузера. Выбор механизма зависит от того, какое свойство среды нужно изменить и в каком браузере выполняется тест. |
There was a problem hiding this comment.
здесь речь идет о 4 способах эмуляции, а ниже таблица уже с тремя способами.
я бы здесь капабилити просто вынес на уровень выше как общий способ задать донастройку браузеру и добавил, что какие-то части эмулации (например, user agent) лучше выносить в настройку браузера, чтобы не применять ее к каждому тесту. Собственно, в текущей документации сейчас вообще ничего про это нет, только упоминание про capabilities
Sorry, something went wrong.
|
|
||
| <Admonition type="caution" title="Сохраняйте функцию отката"> | ||
|
|
||
| `browser.restore()` возвращает user agent, но не viewport, установленный через `emulate("device")`. Для полного отката вызывайте функцию, которую вернул `emulate("device")`. |
There was a problem hiding this comment.
про функцию restoreDevice я бы написал сразу в примере, т.к. сразу не понятно что вообще мы сохранили в переменную. и только в самом конце мы получаем эту информацию
Sorry, something went wrong.
There was a problem hiding this comment.
При этом, у нас внезапно появляется уже второй раз метод restore(), но мы все еще не знаем что он делает в подробностях
Sorry, something went wrong.
|
|
||
| `browser.restore()` возвращает user agent, но не viewport, установленный через `emulate("device")`. Для полного отката вызывайте функцию, которую вернул `emulate("device")`. | ||
|
|
||
| Viewport при этом вернётся к профилю `Desktop Chrome`, а не к исходному размеру. |
There was a problem hiding this comment.
так а делать то что с этим? :)
если мы пишем проблему, то сразу нужно приводить и пример ее решения. Например, заранее сохранить размеры окна, чтобы их потом применить
Sorry, something went wrong.
| }); | ||
| ``` | ||
|
|
||
| Команда применяется к текущему контексту и не возвращает функцию отката. Чтобы восстановить viewport, вызовите `setViewport()` повторно с нужными значениями. |
There was a problem hiding this comment.
здесь не хватает полного примера с сохранением и восстановлением размеров вьюпорта
Sorry, something went wrong.
|
|
||
| ### User agent | ||
|
|
||
| Если клиентский код выбирает мобильный интерфейс по `navigator.userAgent`, задайте значение отдельно: |
There was a problem hiding this comment.
отдельно от чего?
Sorry, something went wrong.
|
|
||
| Значение `1` соответствует обычной скорости, `2` замедляет CPU вдвое, `4` — вчетверо. | ||
|
|
||
| Команда поддерживается только в Chromium-браузерах с доступным CDP-подключением. В Firefox она завершается ошибкой до применения ограничений. |
There was a problem hiding this comment.
достаточно только того, что оно работает только с chromium. Думаю, и так понятно, что в остальных браузерах оно не сработает
Sorry, something went wrong.
|
|
||
| Предварительно выдавать разрешение не нужно. | ||
|
|
||
| Чтобы проверить обработку ошибки, передайте объект `Error`: |
There was a problem hiding this comment.
здесь нужно явно указать какую именно ошибку мы хотим проверить
Sorry, something went wrong.
|
|
||
| </Admonition> | ||
|
|
||
| Способ предназначен для Chromium-браузеров, поскольку использует `goog:chromeOptions`. |
There was a problem hiding this comment.
это вообще никак не связано. просто для каждого типа браузеров свое обозначение. Для chromium это goog:chromeOptions, для остальных браузеров она другая. например,
"moz:firefoxOptions": {
prefs: {
"javascript.enabled": false,
},
}
Sorry, something went wrong.
|
|
||
| Повторяющиеся сценарии удобно оформлять как отдельные браузерные профили или вспомогательные функции: например, `mobile`, `dark-theme` и `slow-network`. | ||
|
|
||
| Настройки, специфичные для одного сценария, оставляйте явными в самом тесте. Состояние `emulate()` может перейти в следующий тест даже при `isolation: true`, поэтому восстанавливайте его в том же тесте: |
There was a problem hiding this comment.
Состояние emulate() может перейти в следующий тест даже при isolation: true
хм... звучит сомнительно. есть примеры?
Sorry, something went wrong.
| Для гарантированно чистой сессии в каждом тесте задайте для браузера: | ||
|
|
||
| ```typescript | ||
| testsPerSession: 1, |
There was a problem hiding this comment.
это очень плохой совет, т.к. на создание новой сессии может уходить много времени
может даже быть кейс, когда создание сессию будет занимать больше времени, чем время самого теста. Поэтому такую настройку нужно использовать только в крайних случаях
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
Adds a new "Basic guides" article on emulating the user environment in Testplane.
Russian version only; the English page is a stub for now.