prepareBrowser
Обзор
Данный параметр является хуком. Функция, заданная для данного параметра, будет автоматически вызвана перед тем, как запустить в браузере тесты. В качестве аргумента функция получает ссылку на сессию браузера.
Обычно внутри данной функции к браузеру добавляют новые команды, или расширяют поведение уже существующих команд.
к сведению
Узнайте больше о кастомных командах в нашем рецепте.
Примеры использования
Добавление новых команд и перезапись существующих команд браузера
Так вы можете добавлять и перезаписывать браузерные команды:
testplane.config.ts
import type { ConfigInput } from "testplane";
import { openScenario, customUrl } from "./testplane/browser-commands";
import { getCoords } from "./testplane/element-commands";
export default {
// ...
prepareBrowser: function (browser) {
// Browser commands
browser.addCommand("openScenario", openScenario);
// Element commands
browser.addCommand("getCoords", getCoords, true);
// Browser command overwrites
browser.overwriteCommand("url", customUrl);
},
} satisfies ConfigInput;
Добавление набора команд из папки
Если в проекте много своих специфических команд, то их удобно хранить в отдельной папке, а в prepareBrowser
добавлять все команды сразу унифицированным образом. Например:
testplane.config.ts
import type { ConfigInput } from "testplane";
import path from "path";
import glob from "fast-glob";
export default {
// ...
prepareBrowser: function (browser) {
const files = glob.sync(["tests/testplane/commands/*.(js|ts)", "!**/*.d.ts"]);
files.forEach(file => {
const module = require(path.resolve(process.cwd(), file));
const name = path.basename(file, path.extname(file));
browser.addCommand(name, typeof module === "object" ? module[name] : module);
});
},
};
tests/testplane/commands/myCheckCookie.js
export default async function (cookieName) {
const cookies = await this.getCookies(cookieName);
assert.isTrue(cookies[0], `cookie named ${cookieName} is not set`);
}
Здесь используется команда browser.getCookies.