unstable_captureDomSnapshot
Обзор
Создает компактный снимок DOM с выбранным элементом в корне. Содержимое за пределами элемента в снимок не входит.
Использование
element.unstable_captureDomSnapshot(options?)
Параметры
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
options | CaptureSnapshotOptions | {} | Те же параметры фильтрации и сокращения, что у браузерной команды. |
Результат
Promise<CaptureSnapshotResult> с полями snapshot, omittedTags, omittedAttributes и textWasTruncated. См. общий формат результата.
Ограничения
Использует element.execute с ожиданием существования элемента. Фильтрация, сокращение и ограничения обработки чувствительных данных совпадают с браузерной командой. В частности, truncateText: false не отключает сокращение атрибутов, а значения input не очищаются от секретов. Метод принимает настройки, а не дополнительный CSS-селектор.
Это нестабильный API Testplane. Сигнатура, поведение и формат результата могут изменяться между версиями.
Пример
Настройте baseUrl на локальный HTTP-сайт, где / возвращает HTML-страницу. Запустите пример в файле тестов Testplane.
const assert = require("node:assert/strict");
it("element.unstable_captureDomSnapshot: capture only this element", async ({ browser }) => {
await browser.url("/");
await browser.execute(() => {
document.body.innerHTML =
'<section id="panel"><button data-test="save">Save</button></section><p>Outside</p>';
});
const result = await browser.$("#panel").unstable_captureDomSnapshot({ truncateText: false });
assert.match(result.snapshot, /section#panel/);
assert.match(result.snapshot, /button\[data-test=save\] "Save"/);
assert.doesNotMatch(result.snapshot, /Outside/);
assert.equal(result.textWasTruncated, false);
});