Кастомные команды
Для удобства тестирования Testplane позволяет расширять интерфейс браузера и элементов пользовательскими командами. Эти команды могут упростить повторяющиеся задачи, инкапсулировать сложные действия и повысить читаемость кода.
- Как добавлять пользовательские команды в объект браузера.
- Как добавлять пользовательские команды в элементы.
- Способы переопределения существующих команд.
- Как использовать кастомные команды вместе с TypeScript.
Добавление пользовательских команд в объект браузера
Отличное место для добавления всех ваших пользовательских команд — хук
prepareBrowser.
Чтобы добавить пользовательскую команду в объект browser, используйте метод addCommand. Так можно определить команду, которая получает URL и заголовок текущей страницы:
browser.addCommand("getUrlAndTitle", async function () {
// this в контексте кастомных команд указывает на объект браузера
return {
url: await this.getUrl(),
title: await this.getTitle(),
};
});
Затем вы можете использовать эту пользовательскую команду в своих тестах:
it("should fetch URL and title", async function () {
const result = await browser.getUrlAndTitle();
console.log(result); // { url: 'https://example.com', title: 'Example Domain' }
});
Добавление пользовательских команд к элементам
Пользовательские команды также можно добавлять к экземплярам элементов. Например, для создания команды, которая получает позицию элемента:
import type { ConfigInput } from "testplane";
export default {
// ...
prepareBrowser: function (browser) {
browser.addCommand(
"getCoords",
async function () {
const { x, y } = await this.getLocation();
const { width, height } = await this.getSize();
return {
left: x,
top: y,
right: x + width,
bottom: y + height,
};
},
true, // true = element command, false = browser command
);
},
} satisfies ConfigInput;
Обратите внимание, что третий параметр установлен в true — это означает, что команда должна быть добавлена к экземплярам элементов.