prepareBrowser
Overview
This parameter is a hook. The function specified for this parameter will be automatically called before running tests in the browser. The function receives a reference to the browser session as an argument.
The prepareBrowser
hook is a perfect place to set up all of your custom commands or overwrite existing ones.
info
Read more about custom commands in our guide.
Usage Examples
Adding new browser commands or overwriting existing browser commands
This is how you can add or overwrite browser commands:
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;
Adding a set of commands from a folder
If the project has many specific commands, it is convenient to store them in a separate folder, and add all commands at once in a unified manner in prepareBrowser
. For example:
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`);
}
Here, the browser.getCookies command is used.