getState
Доступно начиная с testplane v8.40.0
Обзор
Читает JSON-файл состояния, созданный saveState, и возвращает его содержимое. Команда не восстанавливает состояние браузера: не меняет cookies, хранилища и текущую страницу. Для восстановления используйте restoreState.
Использование
await browser.getState(options)
Параметры команды
| Параметр | Тип | Описание |
|---|---|---|
options.path | string | Путь к JSON-файлу. Относительный путь разрешается от рабочего каталога процесса Testplane. |
Если аргумент options пропущен, используются browser.config.stateOpts. Явно переданный объект не объединяется с настройками: getState({}) не подставит путь из конфигурации.
Результат и ошибки
Возвращает Promise с прочитанными данными. Для файла saveState это SaveStateData: необязательный массив cookies и framesData, где состояния localStorage и sessionStorage сгруппированы по origin. Схема прочитанного JSON не проверяется.
Если путь не задан, команда пишет сообщение об ошибке в лог и возвращает null. Ошибки чтения и разбора JSON отклоняют Promise.
Пример
Укажите в baseUrl адрес тестовой HTML-страницы. Пример сохраняет localStorage во временный файл, меняет значение в браузере и проверяет, что чтение файла не восстанавливает сессию.
const assert = require("node:assert/strict");
const fs = require("node:fs/promises");
const os = require("node:os");
const path = require("node:path");
it("getState: read a saved file without restoring the session", async ({ browser }) => {
const directory = await fs.mkdtemp(path.join(os.tmpdir(), "testplane-state-"));
const statePath = path.join(directory, "state.json");
try {
await browser.url("/");
const origin = new URL(await browser.getUrl()).origin;
await browser.execute(() => localStorage.setItem("example", "saved"));
await browser.saveState({ path: statePath, cookies: false, localStorage: true });
await browser.execute(() => localStorage.setItem("example", "current"));
const state = await browser.getState({ path: statePath });
assert.equal(state.framesData[origin].localStorage.example, "saved");
assert.equal(await browser.execute(() => localStorage.getItem("example")), "current");
} finally {
await fs.rm(directory, { recursive: true, force: true });
}
});